diff options
265 files changed, 15802 insertions, 15802 deletions
diff --git a/docs/manual/mod/core.html.de b/docs/manual/mod/core.html.de index c287b322a3..c574b61e1b 100644 --- a/docs/manual/mod/core.html.de +++ b/docs/manual/mod/core.html.de @@ -124,7 +124,6 @@ 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"> @@ -3661,6 +3660,7 @@ 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>Verfgbare Sprachen: </span><a href="../de/mod/core.html" title="Deutsch"> de </a> | diff --git a/docs/manual/mod/core.html.en b/docs/manual/mod/core.html.en index c9a49fac4d..ce3ff4da0b 100644 --- a/docs/manual/mod/core.html.en +++ b/docs/manual/mod/core.html.en @@ -121,7 +121,6 @@ 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"> @@ -4640,6 +4639,7 @@ 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"> de </a> | diff --git a/docs/manual/mod/core.html.es b/docs/manual/mod/core.html.es index 61acd5605a..98d1915621 100644 --- a/docs/manual/mod/core.html.es +++ b/docs/manual/mod/core.html.es @@ -124,7 +124,6 @@ <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"> @@ -4360,6 +4359,7 @@ 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"> de </a> | diff --git a/docs/manual/mod/core.html.fr b/docs/manual/mod/core.html.fr index 8a3c7dcd7b..ea2eb10b58 100644 --- a/docs/manual/mod/core.html.fr +++ b/docs/manual/mod/core.html.fr @@ -123,7 +123,6 @@ 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"> @@ -4961,6 +4960,7 @@ 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"> de </a> | diff --git a/docs/manual/mod/core.html.ja.utf8 b/docs/manual/mod/core.html.ja.utf8 index 00e11a9aca..f8aee4e117 100644 --- a/docs/manual/mod/core.html.ja.utf8 +++ b/docs/manual/mod/core.html.ja.utf8 @@ -124,7 +124,6 @@ <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"> @@ -3576,6 +3575,7 @@ 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"> de </a> | diff --git a/docs/manual/mod/core.html.tr.utf8 b/docs/manual/mod/core.html.tr.utf8 index 06df756384..2466055c6e 100644 --- a/docs/manual/mod/core.html.tr.utf8 +++ b/docs/manual/mod/core.html.tr.utf8 @@ -122,7 +122,6 @@ <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"> @@ -4511,6 +4510,7 @@ 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"> de </a> | diff --git a/docs/manual/mod/event.html.en b/docs/manual/mod/event.html.en index e50d2db5f1..3b4746a904 100644 --- a/docs/manual/mod/event.html.en +++ b/docs/manual/mod/event.html.en @@ -80,6 +80,58 @@ of consuming threads only for connections with active processing</td></tr> <li><a href="worker.html">The worker MPM</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="AsyncRequestWorkerFactor" id="AsyncRequestWorkerFactor">AsyncRequestWorkerFactor</a> <a name="asyncrequestworkerfactor" id="asyncrequestworkerfactor">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Limit concurrent connections per process</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AsyncRequestWorkerFactor <var>factor</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>2</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>MPM</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>event</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.3.13 and later</td></tr> +</table> + <p>The event MPM handles some connections in an asynchronous way, where + request worker threads are only allocated for short periods of time as + needed, and other connections with one request worker thread reserved per + connection. This can lead to situations where all workers are tied up and + no worker thread is available to handle new work on established async + connections.</p> + + <p>To mitigate this problem, the event MPM does two things: Firstly, it + limits the number of connections accepted per process, depending on the + number of idle request workers. Secondly, if all workers are busy, it will + close connections in keep-alive state even if the keep-alive timeout has + not expired. This allows the respective clients to reconnect to a + different process which may still have worker threads available.</p> + + <p>This directive can be used to fine-tune the per-process connection + limit. A process will only accept new connections if the current number of + connections (not counting connections in the "closing" state) is lower + than:</p> + + <p class="indent"><strong> + <code class="directive"><a href="../mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code> + + (<code class="directive">AsyncRequestWorkerFactor</code> * + <var>number of idle workers</var>) + </strong></p> + + <p>This means the absolute maximum numbers of concurrent connections is:</p> + + <p class="indent"><strong> + (<code class="directive">AsyncRequestWorkerFactor</code> + 1) * + <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> + </strong></p> + + <p><code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> was called + <code class="directive">MaxClients</code> prior to version 2.3.13. The above value + shows that the old name did not accurately describe its meaning for the event MPM.</p> + + <p><code class="directive">AsyncRequestWorkerFactor</code> can take non-integer + arguments, e.g "1.5".</p> + + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="how-it-works" id="how-it-works">How it Works</a></h2> <p>This MPM tries to fix the 'keep alive problem' in HTTP. After a client @@ -146,58 +198,6 @@ of consuming threads only for connections with active processing</td></tr> </ul> </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"> <p><span>Available Languages: </span><a href="../en/mod/event.html" title="English"> en </a> | diff --git a/docs/manual/mod/event.html.fr b/docs/manual/mod/event.html.fr index baa5edc252..7f674fe799 100644 --- a/docs/manual/mod/event.html.fr +++ b/docs/manual/mod/event.html.fr @@ -82,6 +82,64 @@ mobiliser des threads que pour les connexions en cours de traitement</td></tr> <li><a href="worker.html">Le MPM worker</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="asyncrequestworkerfactor" id="asyncrequestworkerfactor">Directive</a> <a name="AsyncRequestWorkerFactor" id="AsyncRequestWorkerFactor">AsyncRequestWorkerFactor</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Limite le nombre de connexions simultanes 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">Dfaut:</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 gre certaines connexions de manire asynchrone ; + dans ce cas, les threads traitant la requte sont allous selon les + besoins et pour de courtes priodes. Dans les autres cas, un + thread est rserv par + connexion. Ceci peut conduire des situations o tous les threads + sont saturs et o aucun thread n'est capable d'effectuer de + nouvelles tches pour les connexions asynchrones tablies.</p> + + <p>Pour minimiser les effets de ce problme, le MPM event utilise + deux mthodes : tout d'abord, il limite le nombre de connexions + simultanes par thread en fonction du nombre de processus + inactifs. Ensuite, si tous les processus sont occups, il ferme des + connexions permanentes, mme si la limite de dure de la connexion + n'a pas t atteinte. Ceci autorise les clients concerns se + reconnecter un autre processus possdant 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 + infrieur :</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 simultanes + 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 rsoudre le 'problme keep alive' de HTTP. @@ -160,64 +218,6 @@ mobiliser des threads que pour les connexions en cours de traitement</td></tr> </ul> </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 simultanes 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">Dfaut:</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 gre certaines connexions de manire asynchrone ; - dans ce cas, les threads traitant la requte sont allous selon les - besoins et pour de courtes priodes. Dans les autres cas, un - thread est rserv par - connexion. Ceci peut conduire des situations o tous les threads - sont saturs et o aucun thread n'est capable d'effectuer de - nouvelles tches pour les connexions asynchrones tablies.</p> - - <p>Pour minimiser les effets de ce problme, le MPM event utilise - deux mthodes : tout d'abord, il limite le nombre de connexions - simultanes par thread en fonction du nombre de processus - inactifs. Ensuite, si tous les processus sont occups, il ferme des - connexions permanentes, mme si la limite de dure de la connexion - n'a pas t atteinte. Ceci autorise les clients concerns se - reconnecter un autre processus possdant 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 - infrieur :</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 simultanes - 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"> <p><span>Langues Disponibles: </span><a href="../en/mod/event.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_access_compat.html.en b/docs/manual/mod/mod_access_compat.html.en index 2bcb79ca8b..ce8c254358 100644 --- a/docs/manual/mod/mod_access_compat.html.en +++ b/docs/manual/mod/mod_access_compat.html.en @@ -91,7 +91,6 @@ have been deprecated by the new authz refactoring. Please see <li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li> <li><code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="Allow" id="Allow">Allow</a> <a name="allow" id="allow">Directive</a></h2> <table class="directive"> @@ -457,6 +456,7 @@ Satisfy Any</pre> <li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li> </ul> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_access_compat.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_access_compat.html.fr b/docs/manual/mod/mod_access_compat.html.fr index 4a729fd150..b8ce55d420 100644 --- a/docs/manual/mod/mod_access_compat.html.fr +++ b/docs/manual/mod/mod_access_compat.html.fr @@ -96,7 +96,6 @@ ce module sont devenues obsoltes depuis la refonte d'authz. Voir <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"> @@ -481,6 +480,7 @@ Satisfy Any</pre> <li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li> </ul> </div> + </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_access_compat.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_access_compat.html.ja.utf8 b/docs/manual/mod/mod_access_compat.html.ja.utf8 index 1b21dde70e..1a9ba5cfa3 100644 --- a/docs/manual/mod/mod_access_compat.html.ja.utf8 +++ b/docs/manual/mod/mod_access_compat.html.ja.utf8 @@ -92,7 +92,6 @@ <li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li> <li><code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="Allow" id="Allow">Allow</a> <a name="allow" id="allow">ディレクティブ</a></h2> <table class="directive"> @@ -442,6 +441,7 @@ <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"> en </a> | diff --git a/docs/manual/mod/mod_actions.html.de b/docs/manual/mod/mod_actions.html.de index 75bf752204..cf360ed5f1 100644 --- a/docs/manual/mod/mod_actions.html.de +++ b/docs/manual/mod/mod_actions.html.de @@ -57,7 +57,6 @@ <li><a href="../howto/cgi.html">Dynamische Inhalte mit CGI</a></li> <li><a href="../handler.html">Die Verwendung von Handlern</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Kommentare</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="Action" id="Action">Action</a>-<a name="action" id="action">Direktive</a></h2> <table class="directive"> @@ -161,6 +160,7 @@ </code></p></div> </div> + </div> <div class="bottomlang"> <p><span>Verfgbare Sprachen: </span><a href="../de/mod/mod_actions.html" title="Deutsch"> de </a> | diff --git a/docs/manual/mod/mod_actions.html.en b/docs/manual/mod/mod_actions.html.en index 7a8d286b61..0dffd02393 100644 --- a/docs/manual/mod/mod_actions.html.en +++ b/docs/manual/mod/mod_actions.html.en @@ -53,7 +53,6 @@ <li><a href="../howto/cgi.html">Dynamic Content with CGI</a></li> <li><a href="../handler.html">Apache httpd's Handler Use</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="Action" id="Action">Action</a> <a name="action" id="action">Directive</a></h2> <table class="directive"> @@ -148,6 +147,7 @@ Script PUT /~bob/put.cgi</pre> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> | diff --git a/docs/manual/mod/mod_actions.html.fr b/docs/manual/mod/mod_actions.html.fr index 7ef602376b..6a489ce49c 100644 --- a/docs/manual/mod/mod_actions.html.fr +++ b/docs/manual/mod/mod_actions.html.fr @@ -56,7 +56,6 @@ type de mdia ou de la mthode de requte.</td></tr> <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"> @@ -158,6 +157,7 @@ Script PUT /~bob/put.cgi</pre> </div> + </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> | diff --git a/docs/manual/mod/mod_actions.html.ja.utf8 b/docs/manual/mod/mod_actions.html.ja.utf8 index ba212c5a55..a22b43485c 100644 --- a/docs/manual/mod/mod_actions.html.ja.utf8 +++ b/docs/manual/mod/mod_actions.html.ja.utf8 @@ -59,7 +59,6 @@ CGI スクリプトを実行する機能を提供</td></tr> <li><a href="../howto/cgi.html">CGI による動的コンテンツ</a></li> <li><a href="../handler.html">Apache のハンドラの使用</a></li> </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="Action" id="Action">Action</a> <a name="action" id="action">ディレクティブ</a></h2> <table class="directive"> @@ -169,6 +168,7 @@ Apache 2.1 で導入されました</td></tr> </code></p></div> </div> + </div> <div class="bottomlang"> <p><span>翻訳済み言語: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> | diff --git a/docs/manual/mod/mod_actions.html.ko.euc-kr b/docs/manual/mod/mod_actions.html.ko.euc-kr index a287e02122..b3284ca2d7 100644 --- a/docs/manual/mod/mod_actions.html.ko.euc-kr +++ b/docs/manual/mod/mod_actions.html.ko.euc-kr @@ -56,7 +56,6 @@ <li><a href="../howto/cgi.html">CGI </a></li> <li><a href="../handler.html">ġ ڵ鷯 </a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="Action" id="Action">Action</a> <a name="action" id="action">þ</a></h2> <table class="directive"> @@ -158,6 +157,7 @@ </code></p></div> </div> + </div> <div class="bottomlang"> <p><span> : </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> | diff --git a/docs/manual/mod/mod_alias.html.en b/docs/manual/mod/mod_alias.html.en index afce203558..0fb0c74922 100644 --- a/docs/manual/mod/mod_alias.html.en +++ b/docs/manual/mod/mod_alias.html.en @@ -86,47 +86,6 @@ <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"><VirtualHost></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"><Location></a></code> - or <code class="directive"><a href="../mod/core.html#locationmatch"><LocationMatch></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> @@ -598,6 +557,47 @@ and designates the target as a CGI script</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">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"><VirtualHost></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"><Location></a></code> + or <code class="directive"><a href="../mod/core.html#locationmatch"><LocationMatch></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"> <p><span>Available Languages: </span><a href="../en/mod/mod_alias.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_alias.html.fr b/docs/manual/mod/mod_alias.html.fr index 083e374787..eb8fc64099 100644 --- a/docs/manual/mod/mod_alias.html.fr +++ b/docs/manual/mod/mod_alias.html.fr @@ -89,46 +89,6 @@ redirection d'URL</td></tr> systme 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 diffrents contextes - sont traits comme les autres directives en respectant les <a href="../sections.html#mergin">rgles de fusion</a> standards. Par - contre, ils sont traits selon une chronologie particulire - lorsqu'ils apparaissent dans le mme contexte (par exemple, dans la - mme section <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>).</p> - - <p>Premirement, toutes les redirections sont traites avant les - alias, et ainsi, une requte 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. Deuximement, les alias et redirections sont - traits selon l'ordre dans lequel ils apparaissent dans le fichier - de configuration, seule la premire correspondance tant prise en - compte.</p> - - <p>Ainsi, lorsqu'une ou plusieurs de ces directives s'appliquent au - mme sous-rpertoire, vous devez classer les chemins du plus prcis - au moins prcis 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 applique avant la directive - <code class="directive"><a href="#alias">Alias</a></code> ayant pour argument - <code>/foo/bar</code>, et cette dernire serait toujours - ignore.</p> - - <p>La dfinition 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"><Location></a></code> ou - <code class="directive"><a href="../mod/core.html#locationmatch"><LocationMatch></a></code> - l'emporte sur d'autres dfinitions ventuelles de ces mmes - directives au niveau de la configuration gnrale 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 systme @@ -608,6 +568,46 @@ comme un script CGI</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">Chronologie du traitement</a></h2> + + <p>Les alias et redirections apparaissant dans diffrents contextes + sont traits comme les autres directives en respectant les <a href="../sections.html#mergin">rgles de fusion</a> standards. Par + contre, ils sont traits selon une chronologie particulire + lorsqu'ils apparaissent dans le mme contexte (par exemple, dans la + mme section <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>).</p> + + <p>Premirement, toutes les redirections sont traites avant les + alias, et ainsi, une requte 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. Deuximement, les alias et redirections sont + traits selon l'ordre dans lequel ils apparaissent dans le fichier + de configuration, seule la premire correspondance tant prise en + compte.</p> + + <p>Ainsi, lorsqu'une ou plusieurs de ces directives s'appliquent au + mme sous-rpertoire, vous devez classer les chemins du plus prcis + au moins prcis 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 applique avant la directive + <code class="directive"><a href="#alias">Alias</a></code> ayant pour argument + <code>/foo/bar</code>, et cette dernire serait toujours + ignore.</p> + + <p>La dfinition 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"><Location></a></code> ou + <code class="directive"><a href="../mod/core.html#locationmatch"><LocationMatch></a></code> + l'emporte sur d'autres dfinitions ventuelles de ces mmes + directives au niveau de la configuration gnrale du serveur.</p> + +</div> </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_alias.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_alias.html.ja.utf8 b/docs/manual/mod/mod_alias.html.ja.utf8 index 6abb9c5404..44129cbc44 100644 --- a/docs/manual/mod/mod_alias.html.ja.utf8 +++ b/docs/manual/mod/mod_alias.html.ja.utf8 @@ -84,34 +84,6 @@ <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"><VirtualHost></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> @@ -383,6 +355,34 @@ CGI スクリプトに指定</td></tr> </code></p></div> </div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="order" id="order">処理の順番</a></h2> + +<p>様々なコンテキスト中での Alias や Redirect は他のディレクティブと +同じように標準の <a href="../sections.html#mergin">マージ規則</a> に +従って処理されます。ただし、(例えば <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></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"> <p><span>翻訳済み言語: </span><a href="../en/mod/mod_alias.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_alias.html.ko.euc-kr b/docs/manual/mod/mod_alias.html.ko.euc-kr index b8469e61b6..db6fb49c06 100644 --- a/docs/manual/mod/mod_alias.html.ko.euc-kr +++ b/docs/manual/mod/mod_alias.html.ko.euc-kr @@ -74,35 +74,6 @@ <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"><VirtualHost></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> @@ -350,6 +321,35 @@ Alias /foo /gaq </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"><VirtualHost></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"> <p><span> : </span><a href="../en/mod/mod_alias.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_alias.html.tr.utf8 b/docs/manual/mod/mod_alias.html.tr.utf8 index aabd10b5db..d6e65c8b44 100644 --- a/docs/manual/mod/mod_alias.html.tr.utf8 +++ b/docs/manual/mod/mod_alias.html.tr.utf8 @@ -76,40 +76,6 @@ eşlenmesini sağlar ve URL yönlendirmesi yapar.</td></tr> </li> </ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="order" id="order">İşlem Sırası</a></h2> - - <p>Farklı bağlamlarda bulunan <code class="directive"><a href="#alias">Alias</a></code> ve <code class="directive"><a href="#redirect">Redirect</a></code> - yönergeleri standart <a href="../sections.html#mergin">katıştırma - kuralları</a> ile ilgili diğer yönergeler gibi işleme sokulur. Fakat - aynı bağlam dahilinde (örneğin, aynı <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></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> @@ -527,6 +493,40 @@ 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"><VirtualHost></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"> en </a> | diff --git a/docs/manual/mod/mod_allowhandlers.html.en b/docs/manual/mod/mod_allowhandlers.html.en index 51d92d99bc..e770dca70d 100644 --- a/docs/manual/mod/mod_allowhandlers.html.en +++ b/docs/manual/mod/mod_allowhandlers.html.en @@ -54,7 +54,6 @@ 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"> @@ -81,6 +80,7 @@ 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"> en </a></p> diff --git a/docs/manual/mod/mod_allowmethods.html.en b/docs/manual/mod/mod_allowmethods.html.en index 1631406ebe..b5eb35cdda 100644 --- a/docs/manual/mod/mod_allowmethods.html.en +++ b/docs/manual/mod/mod_allowmethods.html.en @@ -47,7 +47,6 @@ used on an server. The most common configuration would be:</p> <li><img alt="" src="../images/down.gif" /> <a href="#allowmethods">AllowMethods</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AllowMethods" id="AllowMethods">AllowMethods</a> <a name="allowmethods" id="allowmethods">Directive</a></h2> <table class="directive"> @@ -80,6 +79,7 @@ kludgy implementation of <code class="directive"><a href="../mod/core.html#limit <code class="directive"><a href="../mod/core.html#limitexcept">LimitExcept</a></code>.</p> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_allowmethods.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_allowmethods.html.fr b/docs/manual/mod/mod_allowmethods.html.fr index bc50398c72..21bdb70d0c 100644 --- a/docs/manual/mod/mod_allowmethods.html.fr +++ b/docs/manual/mod/mod_allowmethods.html.fr @@ -48,7 +48,6 @@ est du style :</p> <li><img alt="" src="../images/down.gif" /> <a href="#allowmethods">AllowMethods</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="allowmethods" id="allowmethods">Directive</a> <a name="AllowMethods" id="AllowMethods">AllowMethods</a></h2> <table class="directive"> @@ -82,6 +81,7 @@ d'imbrication :</p> remplacer l'implmentation "bricole" 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"> en </a> | diff --git a/docs/manual/mod/mod_auth_basic.html.en b/docs/manual/mod/mod_auth_basic.html.en index 0e78f816d6..d4885e8434 100644 --- a/docs/manual/mod/mod_auth_basic.html.en +++ b/docs/manual/mod/mod_auth_basic.html.en @@ -57,7 +57,6 @@ <li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li> <li><a href="../howto/auth.html">Authentication howto</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AuthBasicAuthoritative" id="AuthBasicAuthoritative">AuthBasicAuthoritative</a> <a name="authbasicauthoritative" id="authbasicauthoritative">Directive</a></h2> <table class="directive"> @@ -252,6 +251,7 @@ Digest Authentication was in force instead of Basic Authentication. </div> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_auth_basic.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_auth_basic.html.fr b/docs/manual/mod/mod_auth_basic.html.fr index c2aa3f9a64..92c5cbd031 100644 --- a/docs/manual/mod/mod_auth_basic.html.fr +++ b/docs/manual/mod/mod_auth_basic.html.fr @@ -61,7 +61,6 @@ <li><a href="../howto/auth.html">Mode d'emploi de l'authentification</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="authbasicauthoritative" id="authbasicauthoritative">Directive</a> <a name="AuthBasicAuthoritative" id="AuthBasicAuthoritative">AuthBasicAuthoritative</a></h2> <table class="directive"> @@ -281,6 +280,7 @@ Apache</td></tr> refuser l'accs.</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"> en </a> | diff --git a/docs/manual/mod/mod_auth_basic.html.ja.utf8 b/docs/manual/mod/mod_auth_basic.html.ja.utf8 index 9f55380602..a8934c7c47 100644 --- a/docs/manual/mod/mod_auth_basic.html.ja.utf8 +++ b/docs/manual/mod/mod_auth_basic.html.ja.utf8 @@ -66,7 +66,6 @@ <li><code class="directive"><a href="../mod/mod_authz_core.html#<satisfyone>"><SatisfyOne></a></code></li> <li><a href="../howto/auth.html">Authentication howto</a></li> </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AuthBasicAuthoritative" id="AuthBasicAuthoritative">AuthBasicAuthoritative</a> <a name="authbasicauthoritative" id="authbasicauthoritative">ディレクティブ</a></h2> <table class="directive"> @@ -163,6 +162,7 @@ Digest Authentication was in force instead of Basic Authentication. </table><p>このディレクティブの解説文書は まだ翻訳されていません。英語版をご覧ください。 </p></div> + </div> <div class="bottomlang"> <p><span>翻訳済み言語: </span><a href="../en/mod/mod_auth_basic.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_auth_basic.html.ko.euc-kr b/docs/manual/mod/mod_auth_basic.html.ko.euc-kr index 6edd089b4e..5860430e82 100644 --- a/docs/manual/mod/mod_auth_basic.html.ko.euc-kr +++ b/docs/manual/mod/mod_auth_basic.html.ko.euc-kr @@ -55,7 +55,6 @@ <li><code class="directive"><a href="../mod/core.html#authname">AuthName</a></code></li> <li><code class="directive"><a href="../mod/core.html#authtype">AuthType</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AuthBasicAuthoritative" id="AuthBasicAuthoritative">AuthBasicAuthoritative</a> <a name="authbasicauthoritative" id="authbasicauthoritative">þ</a></h2> <table class="directive"> @@ -156,6 +155,7 @@ Digest Authentication was in force instead of Basic Authentication. </table><p>The documentation for this directive has not been translated yet. Please have a look at the English version.</p></div> + </div> <div class="bottomlang"> <p><span> : </span><a href="../en/mod/mod_auth_basic.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_auth_digest.html.en b/docs/manual/mod/mod_auth_digest.html.en index c9df7ecb40..919449ab9f 100644 --- a/docs/manual/mod/mod_auth_digest.html.en +++ b/docs/manual/mod/mod_auth_digest.html.en @@ -68,48 +68,6 @@ <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"><Location "/private/"> - AuthType Digest - AuthName "private area" - AuthDigestDomain "/private/" "http://mirror.my.dom/private2/" - - AuthDigestProvider file - AuthUserFile "/web/auth/.digest_pw" - Require valid-user -</Location></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 @@ -299,6 +257,48 @@ 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"><Location "/private/"> + AuthType Digest + AuthName "private area" + AuthDigestDomain "/private/" "http://mirror.my.dom/private2/" + + AuthDigestProvider file + AuthUserFile "/web/auth/.digest_pw" + Require valid-user +</Location></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"> <p><span>Available Languages: </span><a href="../en/mod/mod_auth_digest.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_auth_digest.html.fr b/docs/manual/mod/mod_auth_digest.html.fr index c3f051da34..7354f919c1 100644 --- a/docs/manual/mod/mod_auth_digest.html.fr +++ b/docs/manual/mod/mod_auth_digest.html.fr @@ -74,48 +74,6 @@ condenss</a></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="section"> -<h2><a name="using" id="using">Utilisation de l'authentification base de -condenss</a></h2> - - <p>Pour utiliser l'authentification base de condenss 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 protger.</p> - - <p>On peut crer les fichiers utilisateur appropris (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"><Location /private/> - AuthType Digest - AuthName "private area" - AuthDigestDomain /private/ http://mirror.my.dom/private2/ - - AuthDigestProvider file - AuthUserFile /web/auth/.digest_pw - Require valid-user -</Location></pre> -</div> - - <div class="note"><h3>Note</h3> - <p>L'authentification base de condens a t conue pour amliorer - la scurit par rapport l'authentification basique, mais il - s'avre 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. Mme une oreille indiscrte 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 problme, le stockage des - mots de passe sur le serveur n'est pas sr. 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 mmoire partage.</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>Slectionne l'algorithme utilis pour calculer les @@ -321,6 +279,48 @@ 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 +condenss</a></h2> + + <p>Pour utiliser l'authentification base de condenss 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 protger.</p> + + <p>On peut crer les fichiers utilisateur appropris (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"><Location /private/> + AuthType Digest + AuthName "private area" + AuthDigestDomain /private/ http://mirror.my.dom/private2/ + + AuthDigestProvider file + AuthUserFile /web/auth/.digest_pw + Require valid-user +</Location></pre> +</div> + + <div class="note"><h3>Note</h3> + <p>L'authentification base de condens a t conue pour amliorer + la scurit par rapport l'authentification basique, mais il + s'avre 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. Mme une oreille indiscrte 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 problme, le stockage des + mots de passe sur le serveur n'est pas sr. 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 mmoire partage.</p> + </div> +</div> </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_auth_digest.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_auth_digest.html.ko.euc-kr b/docs/manual/mod/mod_auth_digest.html.ko.euc-kr index b3ef665e4d..e79a403995 100644 --- a/docs/manual/mod/mod_auth_digest.html.ko.euc-kr +++ b/docs/manual/mod/mod_auth_digest.html.ko.euc-kr @@ -62,75 +62,6 @@ <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> - <Location /private/><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> - </Location> - </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 @@ -315,6 +246,75 @@ URI</td></tr> </code></p></div> </div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="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> + <Location /private/><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> + </Location> + </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"> en </a> | diff --git a/docs/manual/mod/mod_auth_form.html.en b/docs/manual/mod/mod_auth_form.html.en index 2f38a4774b..5091fe9368 100644 --- a/docs/manual/mod/mod_auth_form.html.en +++ b/docs/manual/mod/mod_auth_form.html.en @@ -96,253 +96,6 @@ <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"><form method="POST" action="/dologin.html"> - Username: <input type="text" name="httpd_username" value="" /> - Password: <input type="password" name="httpd_password" value="" /> - <input type="submit" name="login" value="Login" /> -</form></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"><Location "/dologin.html"> - 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 -</Location></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"><form method="POST" action="/dologin.html"> - Username: <input type="text" name="httpd_username" value="" /> - Password: <input type="password" name="httpd_password" value="" /> - <input type="submit" name="login" value="Login" /> - <input type="hidden" name="httpd_location" value="http://example.com/success.html" /> -</form></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"><form method="POST" <strong>action=""</strong>> - Username: <input type="text" name="httpd_username" value="" /> - Password: <input type="password" name="httpd_password" value="" /> - <input type="submit" name="login" value="Login" /> -</form></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"><form method="POST" action=""> - Username: <input type="text" name="httpd_username" value="" /> - Password: <input type="password" name="httpd_password" value="" /> - <input type="submit" name="login" value="Login" /> - <br /> <strong><input type="hidden" name="httpd_method" value="POST" /> - <input type="hidden" name="httpd_mimetype" value="application/x-www-form-urlencoded" /> - <input type="hidden" name="httpd_body" value="name1=value1&name2=value2" /></strong><br /> -</form></pre> -</div> - - <p>How the method, mimetype and body of the original request are embedded within the - login form will depend on the platform and technology being used within the website. - </p> - - <p>One option is to use the <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> module along with the - <code class="directive"><a href="../mod/mod_request.html#keptbodysize">KeptBodySize</a></code> directive, along with a suitable - CGI script to embed the variables in the form.</p> - - <p>Another option is to render the login form using a CGI script or other dynamic - technology.</p> - - <div class="example"><h3>CGI example</h3><pre class="prettyprint lang-config"> AuthFormProvider file - ErrorDocument 401 "/cgi-bin/login.cgi" - ...</pre> -</div> - - </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="loggingout" id="loggingout">Logging Out</a></h2> - - <p>To enable a user to log out of a particular session, configure a page to - be handled by the <var>form-logout-handler</var>. Any attempt to access this - URL will cause the username and password to be removed from the current - session, effectively logging the user out.</p> - - <p>By setting the - <code class="directive"><a href="#authformlogoutlocation">AuthFormLogoutLocation</a></code> directive, - a URL can be specified that the browser will be redirected to on successful - logout. This URL might explain to the user that they have been logged out, and - give the user the option to log in again.</p> - - <div class="example"><h3>Basic logout example</h3><pre class="prettyprint lang-config">SetHandler form-logout-handler -AuthName realm -AuthFormLogoutLocation "http://example.com/loggedout.html" -Session On -SessionCookieName session path=/ -SessionCryptoPassphrase secret</pre> -</div> - - <p>Note that logging a user out does not delete the session; it merely removes - the username and password from the session. If this results in an empty session, - the net effect will be the removal of that session, but this is not - guaranteed. If you want to guarantee the removal of a session, set the - <code class="directive"><a href="../mod/mod_session.html#sessionmaxage">SessionMaxAge</a></code> directive to a small - value, like 1 (setting the directive to zero would mean no session age limit). - </p> - - <div class="example"><h3>Basic session expiry example</h3><pre class="prettyprint lang-config">SetHandler form-logout-handler -AuthFormLogoutLocation "http://example.com/loggedout.html" -Session On -SessionMaxAge 1 -SessionCookieName session path=/ -SessionCryptoPassphrase secret</pre> -</div> - - </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="urlencoding" id="urlencoding">Usernames and Passwords</a></h2> - <p>Note that form submission involves URLEncoding the form data: - in this case the username and password. You should therefore - pick usernames and passwords that avoid characters that are - URLencoded in form submission, or you may get unexpected results.</p> - </div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AuthFormAuthoritative" id="AuthFormAuthoritative">AuthFormAuthoritative</a> <a name="authformauthoritative" id="authformauthoritative">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets whether authorization and authentication are passed to @@ -698,6 +451,253 @@ parser has been added in 2.4.4.</td></tr> in.</p> </div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="basicconfig" id="basicconfig">Basic Configuration</a></h2> + + <p>To protect a particular URL with <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, you need to + decide where you will store your <var>session</var>, and you will need to + decide what method you will use to authenticate. In this simple example, the + login details will be stored in a session based on + <code class="module"><a href="../mod/mod_session_cookie.html">mod_session_cookie</a></code>, and authentication will be attempted against + a file using <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>. If authentication is unsuccessful, + the user will be redirected to the form login page.</p> + + <div class="example"><h3>Basic example</h3><pre class="prettyprint lang-config">AuthFormProvider file +AuthUserFile "conf/passwd" +AuthType form +AuthName realm +AuthFormLoginRequiredLocation "http://example.com/login.html" +Session On +SessionCookieName session path=/ +SessionCryptoPassphrase secret</pre> +</div> + + <p>The directive <code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code> will enable + the <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> authentication when set to the value <var>form</var>. + The directives <code class="directive"><a href="#authformprovider">AuthFormProvider</a></code> and + <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> specify that usernames + and passwords should be checked against the chosen file.</p> + + <p>The directives <code class="directive"><a href="../mod/mod_session.html#session">Session</a></code>, + <code class="directive"><a href="../mod/mod_session_cookie.html#sessioncookiename">SessionCookieName</a></code> and + <code class="directive"><a href="../mod/mod_session_crypto.html#sessioncryptopassphrase">SessionCryptoPassphrase</a></code> create an + encrypted session stored within an HTTP cookie on the browser. For more information + on the different options for configuring a session, read the documentation for + <code class="module"><a href="../mod/mod_session.html">mod_session</a></code>.</p> + + <p>In the simple example above, a URL has been protected by + <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, but the user has yet to be given an opportunity to + enter their username and password. Options for doing so include providing a + dedicated standalone login page for this purpose, or for providing the login + page inline.</p> + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="standalone" id="standalone">Standalone Login</a></h2> + + <p>The login form can be hosted as a standalone page, or can be provided inline on + the same page.</p> + + <p>When configuring the login as a standalone page, unsuccessful authentication + attempts should be redirected to a login form created by the website for this purpose, + using the <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code> + directive. Typically this login page will contain an HTML form, asking the user to + provide their usename and password.</p> + + <div class="example"><h3>Example login form</h3><pre class="prettyprint lang-html"><form method="POST" action="/dologin.html"> + Username: <input type="text" name="httpd_username" value="" /> + Password: <input type="password" name="httpd_password" value="" /> + <input type="submit" name="login" value="Login" /> +</form></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"><Location "/dologin.html"> + 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 +</Location></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"><form method="POST" action="/dologin.html"> + Username: <input type="text" name="httpd_username" value="" /> + Password: <input type="password" name="httpd_password" value="" /> + <input type="submit" name="login" value="Login" /> + <input type="hidden" name="httpd_location" value="http://example.com/success.html" /> +</form></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"><form method="POST" <strong>action=""</strong>> + Username: <input type="text" name="httpd_username" value="" /> + Password: <input type="password" name="httpd_password" value="" /> + <input type="submit" name="login" value="Login" /> +</form></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"><form method="POST" action=""> + Username: <input type="text" name="httpd_username" value="" /> + Password: <input type="password" name="httpd_password" value="" /> + <input type="submit" name="login" value="Login" /> + <br /> <strong><input type="hidden" name="httpd_method" value="POST" /> + <input type="hidden" name="httpd_mimetype" value="application/x-www-form-urlencoded" /> + <input type="hidden" name="httpd_body" value="name1=value1&name2=value2" /></strong><br /> +</form></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"> en </a> | diff --git a/docs/manual/mod/mod_auth_form.html.fr b/docs/manual/mod/mod_auth_form.html.fr index cdbc78e5bd..1d47e5d234 100644 --- a/docs/manual/mod/mod_auth_form.html.fr +++ b/docs/manual/mod/mod_auth_form.html.fr @@ -105,295 +105,6 @@ l'authentification</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="basicconfig" id="basicconfig">Configuration de base</a></h2> - - <p>Pour protger une URL particulire avec le module - <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, vous devez dterminer l'endroit o - vous allez stocker votre <var>session</var>, ainsi que la mthode - d'authentification. Dans cet exemple simple, les informations de - connexion sont stockes 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 active - 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> - spcifient que les noms d'utilisateurs et mots de passe seront - vrifis 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> - crent une session chiffre stocke dans un cookie HTTP au niveau - du navigateur. Pour plus d'informations propos des diffrentes - 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 protge 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 indpendante - ddie, 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 ddie</a></h2> - - <p>Le formulaire de connexion peut tre contenu dans une page - indpendante, ou tre inclus dans la page courante. </p> - - <p>Lorsque la connexion s'effectue partir d'une page - indpendante 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 gnral, 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"><form method="POST" action="/dologin.html"> - Username: <input type="text" name="httpd_username" value="" /> - Password: <input type="password" name="httpd_password" value="" /> - <input type="submit" name="login" value="Login" /> -</form></pre> -</div> - - <p>La partie o s'effectue la connexion proprement dite est - traite 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"><Location /dologin.html> - 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 -</Location></pre> -</div> - - <p>L'URL spcifie par la directive - <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code> - rfrencera en gnral 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> - spcifie l'URL vers laquelle l'utilisateur doit tre redirig s'il - s'est authentifi avec succs.</p> - - <p>Alternativement, l'URL vers laquelle doit tre redirig - l'utilisateur s'il s'est authentifi avec succs peut tre - intgre dans le formulaire de connexion, comme dans l'exemple - ci-dessous. Il en dcoule que le mme gestionnaire - <var>form-login-handler</var> pourra tre utilis pour diffrentes - zones du site web.</p> - - <div class="example"><h3>Exemple de formulaire d'authentification multizone</h3><pre class="prettyprint lang-html"><form method="POST" action="/dologin.html"> - Username: <input type="text" name="httpd_username" value="" /> - Password: <input type="password" name="httpd_password" value="" /> - <input type="submit" name="login" value="Login" /> - <input type="hidden" name="httpd_location" value="http://example.com/success.html" /> -</form></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 vole</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 vole - soit soumis plusieurs fois, rvlant de ce fait les paramtres - de connexion l'application sous-jacente. L'administrateur doit - s'assurer que cette dernire est correctement scurise afin - d'viter les ventuels abus. En cas de doute, utilisez une page - de connexion indpendante ddie.</p> - </div> - - <p>Comme alternative la page de connexion ddie 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 vole, 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'avrer - utile dans le cas d'une session limite dans le temps, si le dlai - de la session a expir pendant la requte de l'utilisateur. Ce - dernier peut alors se rauthentifier la mme place, et - poursuivre son activit partir du point o il en tait rest.</p> - - <p>Si un utilisateur non authentifi tente d'accder une page - protge 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 - accder cette page.</p> - - <p>Pour configurer l'authentification la vole, 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 vole</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 proprit action est vide, comme dans l'exemple - ci-dessous. Ceci a pour effet de soumettre le formulaire l'URL - protge originale, cette dernire n'ayant pas besoin d'tre - connue de la page en cours.</p> - - <div class="example"><h3>Exemple de formulaire de connexion la vole</h3><pre class="prettyprint lang-html"><form method="POST" <strong>action=""</strong>> - Username: <input type="text" name="httpd_username" value="" /> - Password: <input type="password" name="httpd_password" value="" /> - <input type="submit" name="login" value="Login" /> -</form></pre> -</div> - - <p>Lorsque l'utilisateur final a entr ses informations de - connexion, le formulaire effectue une requte HTTP POST pour l'URL - originale protge par mot de passe. - <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> va alors intercepter cette requte - POST, et dans le cas o des champs HTML Utilisateur et Mot de - passe corrects sont prsents, l'utilisateur sera connect, et - l'URL originale protge par mot de passe lui sera retourne en - tant que requte 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 vole avec - conservation du contenu</a></h2> - - <p>Il existe une limite la technique de connexion la vole - dcrite ci-dessus ; si un formulaire HTML POST entrane une - demande d'authentification ou de rauthentification, le contenu du - formulaire original envoy par le navigateur sera perdu. Cela peut - s'avrer plus ou moins gnant pour l'utilisateur final selon la - fonction du site web.</p> - - <p>Comme solution ce problme, <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> - permet d'intgrer la mthode et le contenu de la requte originale - dans le formulaire de connexion. Si l'authentification russit, - Apache httpd pourra refaire une tentative avec la mthode et le contenu - originaux, tout en conservant l'tat de la requte originale.</p> - - <p>Pour mettre en oeuvre la conservation du contenu, vous devez - ajouter trois champs supplmentaires 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"><form method="POST" action=""> - Username: <input type="text" name="httpd_username" value="" /> - Password: <input type="password" name="httpd_password" value="" /> - <input type="submit" name="login" value="Login" /> - <br /> <strong><input type="hidden" name="httpd_method" value="POST" /> - <input type="hidden" name="httpd_mimetype" value="application/x-www-form-urlencoded" /> - <input type="hidden" name="httpd_body" value="name1=value1&name2=value2" /></strong><br /> -</form></pre> -</div> - - <p>La manire dont la mthode, le type MIME et le contenu de la - requte originale seront intgrs dans le formulaire de connexion - vont dpendre de la plate-forme et de la technologie utilises 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 intgrer les variables dans le - formulaire.</p> - - <p>Une autre option consiste prsenter 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">Dconnexion</a></h2> - - <p>Pour permettre un utilisateur de se dconnecter d'une session - particulire, vous devez configurer une page pour qu'elle soit - traite par le gestionnaire <var>form-logout-handler</var>. Tout - accs cette URL va entraner la suppression de l'Utilisateur et - du Mot de passe de la session courante, ce qui aura pour effet de - dconnecter l'utilisateur.</p> - - <p>Vous pouvez spcifier une URL vers laquelle le navigateur sera - redirig en cas de dconnection russie, en dfinissant la - directive <code class="directive"><a href="#authformlogoutlocation">AuthFormLogoutLocation</a></code>. Cette - URL devra expliquer l'utilisateur qu'il a t dconnect, et lui - donner la possibilit de se connecter nouveau.</p> - - <div class="example"><h3>Exemple simple de configuration de la - dconnexion</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 dconnexion 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 rsulte est vide, elle sera - probablement supprime, mais ce n'est pas garanti. Si vous voulez - tre sr que la session sera supprime, 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 zro signifie une session - sans limite d'ge). - </p> - - <div class="example"><h3>Exemple simple avec dure de validit de session - limite</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 donnes 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 caractres susceptibles - d'tre encods URL lors de la soumission du formulaire, sous peine - d'obtenir des rsultats 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>Dtermine si l'autorisation et l'authentification sont confis @@ -786,6 +497,295 @@ 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 protger une URL particulire avec le module + <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, vous devez dterminer l'endroit o + vous allez stocker votre <var>session</var>, ainsi que la mthode + d'authentification. Dans cet exemple simple, les informations de + connexion sont stockes 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 active + 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> + spcifient que les noms d'utilisateurs et mots de passe seront + vrifis 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> + crent une session chiffre stocke dans un cookie HTTP au niveau + du navigateur. Pour plus d'informations propos des diffrentes + 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 protge 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 indpendante + ddie, 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 ddie</a></h2> + + <p>Le formulaire de connexion peut tre contenu dans une page + indpendante, ou tre inclus dans la page courante. </p> + + <p>Lorsque la connexion s'effectue partir d'une page + indpendante 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 gnral, 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"><form method="POST" action="/dologin.html"> + Username: <input type="text" name="httpd_username" value="" /> + Password: <input type="password" name="httpd_password" value="" /> + <input type="submit" name="login" value="Login" /> +</form></pre> +</div> + + <p>La partie o s'effectue la connexion proprement dite est + traite 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"><Location /dologin.html> + 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 +</Location></pre> +</div> + + <p>L'URL spcifie par la directive + <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code> + rfrencera en gnral 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> + spcifie l'URL vers laquelle l'utilisateur doit tre redirig s'il + s'est authentifi avec succs.</p> + + <p>Alternativement, l'URL vers laquelle doit tre redirig + l'utilisateur s'il s'est authentifi avec succs peut tre + intgre dans le formulaire de connexion, comme dans l'exemple + ci-dessous. Il en dcoule que le mme gestionnaire + <var>form-login-handler</var> pourra tre utilis pour diffrentes + zones du site web.</p> + + <div class="example"><h3>Exemple de formulaire d'authentification multizone</h3><pre class="prettyprint lang-html"><form method="POST" action="/dologin.html"> + Username: <input type="text" name="httpd_username" value="" /> + Password: <input type="password" name="httpd_password" value="" /> + <input type="submit" name="login" value="Login" /> + <input type="hidden" name="httpd_location" value="http://example.com/success.html" /> +</form></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 vole</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 vole + soit soumis plusieurs fois, rvlant de ce fait les paramtres + de connexion l'application sous-jacente. L'administrateur doit + s'assurer que cette dernire est correctement scurise afin + d'viter les ventuels abus. En cas de doute, utilisez une page + de connexion indpendante ddie.</p> + </div> + + <p>Comme alternative la page de connexion ddie 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 vole, 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'avrer + utile dans le cas d'une session limite dans le temps, si le dlai + de la session a expir pendant la requte de l'utilisateur. Ce + dernier peut alors se rauthentifier la mme place, et + poursuivre son activit partir du point o il en tait rest.</p> + + <p>Si un utilisateur non authentifi tente d'accder une page + protge 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 + accder cette page.</p> + + <p>Pour configurer l'authentification la vole, 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 vole</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 proprit action est vide, comme dans l'exemple + ci-dessous. Ceci a pour effet de soumettre le formulaire l'URL + protge originale, cette dernire n'ayant pas besoin d'tre + connue de la page en cours.</p> + + <div class="example"><h3>Exemple de formulaire de connexion la vole</h3><pre class="prettyprint lang-html"><form method="POST" <strong>action=""</strong>> + Username: <input type="text" name="httpd_username" value="" /> + Password: <input type="password" name="httpd_password" value="" /> + <input type="submit" name="login" value="Login" /> +</form></pre> +</div> + + <p>Lorsque l'utilisateur final a entr ses informations de + connexion, le formulaire effectue une requte HTTP POST pour l'URL + originale protge par mot de passe. + <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> va alors intercepter cette requte + POST, et dans le cas o des champs HTML Utilisateur et Mot de + passe corrects sont prsents, l'utilisateur sera connect, et + l'URL originale protge par mot de passe lui sera retourne en + tant que requte 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 vole avec + conservation du contenu</a></h2> + + <p>Il existe une limite la technique de connexion la vole + dcrite ci-dessus ; si un formulaire HTML POST entrane une + demande d'authentification ou de rauthentification, le contenu du + formulaire original envoy par le navigateur sera perdu. Cela peut + s'avrer plus ou moins gnant pour l'utilisateur final selon la + fonction du site web.</p> + + <p>Comme solution ce problme, <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> + permet d'intgrer la mthode et le contenu de la requte originale + dans le formulaire de connexion. Si l'authentification russit, + Apache httpd pourra refaire une tentative avec la mthode et le contenu + originaux, tout en conservant l'tat de la requte originale.</p> + + <p>Pour mettre en oeuvre la conservation du contenu, vous devez + ajouter trois champs supplmentaires 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"><form method="POST" action=""> + Username: <input type="text" name="httpd_username" value="" /> + Password: <input type="password" name="httpd_password" value="" /> + <input type="submit" name="login" value="Login" /> + <br /> <strong><input type="hidden" name="httpd_method" value="POST" /> + <input type="hidden" name="httpd_mimetype" value="application/x-www-form-urlencoded" /> + <input type="hidden" name="httpd_body" value="name1=value1&name2=value2" /></strong><br /> +</form></pre> +</div> + + <p>La manire dont la mthode, le type MIME et le contenu de la + requte originale seront intgrs dans le formulaire de connexion + vont dpendre de la plate-forme et de la technologie utilises 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 intgrer les variables dans le + formulaire.</p> + + <p>Une autre option consiste prsenter 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">Dconnexion</a></h2> + + <p>Pour permettre un utilisateur de se dconnecter d'une session + particulire, vous devez configurer une page pour qu'elle soit + traite par le gestionnaire <var>form-logout-handler</var>. Tout + accs cette URL va entraner la suppression de l'Utilisateur et + du Mot de passe de la session courante, ce qui aura pour effet de + dconnecter l'utilisateur.</p> + + <p>Vous pouvez spcifier une URL vers laquelle le navigateur sera + redirig en cas de dconnection russie, en dfinissant la + directive <code class="directive"><a href="#authformlogoutlocation">AuthFormLogoutLocation</a></code>. Cette + URL devra expliquer l'utilisateur qu'il a t dconnect, et lui + donner la possibilit de se connecter nouveau.</p> + + <div class="example"><h3>Exemple simple de configuration de la + dconnexion</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 dconnexion 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 rsulte est vide, elle sera + probablement supprime, mais ce n'est pas garanti. Si vous voulez + tre sr que la session sera supprime, 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 zro signifie une session + sans limite d'ge). + </p> + + <div class="example"><h3>Exemple simple avec dure de validit de session + limite</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 donnes 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 caractres susceptibles + d'tre encods URL lors de la soumission du formulaire, sous peine + d'obtenir des rsultats 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"> en </a> | diff --git a/docs/manual/mod/mod_authn_anon.html.en b/docs/manual/mod/mod_authn_anon.html.en index 75c2dbd80e..5644f9abe1 100644 --- a/docs/manual/mod/mod_authn_anon.html.en +++ b/docs/manual/mod/mod_authn_anon.html.en @@ -67,49 +67,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#example">Example</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="example" id="example">Example</a></h2> - <p>The example below is combined with "normal" htpasswd-file based - authentication and allows users in additionally as 'guests' with the - following properties:</p> - - <ul> - <li>It insists that the user enters a userID. - (<code class="directive"><a href="#anonymous_nouserid">Anonymous_NoUserID</a></code>)</li> - - <li>It insists that the user enters a password. - (<code class="directive"><a href="#anonymous_mustgiveemail">Anonymous_MustGiveEmail</a></code>)</li> - - <li>The password entered must be a valid email address, <em>i.e.</em> - contain at least one '@' and a '.'. - (<code class="directive"><a href="#anonymous_verifyemail">Anonymous_VerifyEmail</a></code>)</li> - - <li>The userID must be one of <code>anonymous guest www test - welcome</code> and comparison is <strong>not</strong> case - sensitive. (<code class="directive"><a href="#anonymous">Anonymous</a></code>)</li> - - <li>And the Email addresses entered in the passwd field are - logged to the error log file. - (<code class="directive"><a href="#anonymous_logemail">Anonymous_LogEmail</a></code>)</li> - </ul> - - <div class="example"><h3>Example</h3><pre class="prettyprint lang-config"><Directory "/var/www/html/private"> - AuthName "Use 'anonymous' & 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 -</Directory></pre> -</div> -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="Anonymous" id="Anonymous">Anonymous</a> <a name="anonymous" id="anonymous">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specifies userIDs that are allowed access without @@ -209,6 +166,49 @@ formatted email address</td></tr> 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"><Directory "/var/www/html/private"> + AuthName "Use 'anonymous' & 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 +</Directory></pre> +</div> +</div> </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_authn_anon.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_authn_anon.html.fr b/docs/manual/mod/mod_authn_anon.html.fr index 638725b1d2..959aceac65 100644 --- a/docs/manual/mod/mod_authn_anon.html.fr +++ b/docs/manual/mod/mod_authn_anon.html.fr @@ -72,51 +72,6 @@ authentifies</td></tr> <li><img alt="" src="../images/down.gif" /> <a href="#example">Exemple</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="example" id="example">Exemple</a></h2> - <p>L'exemple ci-dessous prsente un exemple de combinaison avec - l'authentification base de fichier htpasswd "normale", et permet - la connexion d'utilisateurs en tant qu'invits avec les proprits - 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 - vrification n'est <strong>pas</strong> sensible la casse. - (<code class="directive"><a href="#anonymous">Anonymous</a></code>)</li> - - <li>Les adresses email entres dans le champ passwd sont - enregistres 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"><Directory /var/www/html/private> - AuthName "Use 'anonymous' & 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 -</Directory></pre> -</div> -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="anonymous" id="anonymous">Directive</a> <a name="Anonymous" id="Anonymous">Anonymous</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dfinit la liste des identifiants utilisateur autoriss @@ -226,6 +181,51 @@ email fournie comme mot de passe est correct</td></tr> 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 prsente un exemple de combinaison avec + l'authentification base de fichier htpasswd "normale", et permet + la connexion d'utilisateurs en tant qu'invits avec les proprits + 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 + vrification n'est <strong>pas</strong> sensible la casse. + (<code class="directive"><a href="#anonymous">Anonymous</a></code>)</li> + + <li>Les adresses email entres dans le champ passwd sont + enregistres 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"><Directory /var/www/html/private> + AuthName "Use 'anonymous' & 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 +</Directory></pre> +</div> +</div> </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_authn_anon.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_authn_anon.html.ja.utf8 b/docs/manual/mod/mod_authn_anon.html.ja.utf8 index 80dd1d24b6..c145264dc0 100644 --- a/docs/manual/mod/mod_authn_anon.html.ja.utf8 +++ b/docs/manual/mod/mod_authn_anon.html.ja.utf8 @@ -72,49 +72,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#example">例</a></li> </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="example" id="example">例</a></h2> - <p>以下の例は「普通」の htpasswd ファイルに基づいた認証と組み合わされて - おり、以下の要件を見たすユーザを「ゲスト」として許可します:</p> - - <ul> - <li>ユーザは userID を入力しなければなりません。 - (<code class="directive"><a href="#anonymous_nouserid">Anonymous_NoUserID</a></code>)</li> - - <li>ユーザはパスワードを入力しなければなりません。 - (<code class="directive"><a href="#anonymous_mustgiveemail">Anonymous_MustGiveEmail</a></code>)</li> - - <li>入力されたパスワードは有効な電子メールアドレスでなければ - なりません。<em>すなわち</em>、少くとも一つの '@' と '.' が - 含まれている必要があります。 - (<code class="directive"><a href="#anonymous_verifyemail">Anonymous_VerifyEmail</a></code>)</li> - - <li>userID は <code>anonymous guest www test - welcome</code> のどれかでなければなりません。 - ユーザ名の比較は大文字小文字を区別<strong>しません。</strong></li> - - <li>パスワード欄に入力された電子メールアドレスはエラーログファイルに - ロギングされます。 - (<code class="directive"><a href="#anonymous_logemail">Anonymous_LogEmail</a></code>)</li> - </ul> - - <div class="example"><h3>例</h3><pre class="prettyprint lang-config"><Directory /var/www/html/private> - AuthName "Use 'anonymous' & 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 -</Directory></pre> -</div> -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="Anonymous" id="Anonymous">Anonymous</a> <a name="anonymous" id="anonymous">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>パスワードの検査無しでアクセスを許可する userID を指定する @@ -213,6 +170,49 @@ (上の <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"><Directory /var/www/html/private> + AuthName "Use 'anonymous' & 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 +</Directory></pre> +</div> +</div> </div> <div class="bottomlang"> <p><span>翻訳済み言語: </span><a href="../en/mod/mod_authn_anon.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_authn_anon.html.ko.euc-kr b/docs/manual/mod/mod_authn_anon.html.ko.euc-kr index a0897fcded..686d382397 100644 --- a/docs/manual/mod/mod_authn_anon.html.ko.euc-kr +++ b/docs/manual/mod/mod_authn_anon.html.ko.euc-kr @@ -66,51 +66,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#example"></a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="example" id="example"></a></h2> - <p> "Ϲ" htpasswd-ϱ ߰ - ڰ Ѵٸ 'մ(guest)' - ֵ Ѵ:</p> - - <ul> - <li>ڴ ̵ Էؾ Ѵ. (<code class="directive"><a href="#anonymous_nouserid">Anonymous_NoUserID</a></code>)</li> - - <li>ڴ ȣ Էؾ Ѵ. (<code class="directive"><a href="#anonymous_mustgiveemail">Anonymous_MustGiveEmail</a></code>)</li> - - <li>ȣ ȿ ڿ ּҸ Էؾ Ѵ. <em> - </em> ּ '@' '.' Ѱ ؾ Ѵ. (<code class="directive"><a href="#anonymous_verifyemail">Anonymous_VerifyEmail</a></code>)</li> - - <li> ̵ <code>anonymous guest www test - welcome</code> ϳ̸, ҹڸ - <strong>ʴ´</strong>. (<code class="directive"><a href="#anonymous">Anonymous</a></code>)</li> - - <li> ȣ Է ڿ ּҸ αϿ - Ѵ. (<code class="directive"><a href="#anonymous_logemail">Anonymous_LogEmail</a></code>)</li> - </ul> - - <div class="example"><h3></h3><p><code> - <Directory /foo> - <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> - </Directory> - </code></p></div> -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="Anonymous" id="Anonymous">Anonymous</a> <a name="anonymous" id="anonymous">þ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">:</a></th><td>ȣ˻ ̵ @@ -206,6 +161,51 @@ ϴ ˻Ѵ ( <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> + <Directory /foo> + <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> + </Directory> + </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"> en </a> | diff --git a/docs/manual/mod/mod_authn_core.html.en b/docs/manual/mod/mod_authn_core.html.en index b68c3a16cc..b3adf6f79d 100644 --- a/docs/manual/mod/mod_authn_core.html.en +++ b/docs/manual/mod/mod_authn_core.html.en @@ -50,78 +50,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#authnalias">Creating Authentication Provider Aliases</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="authnalias" id="authnalias">Creating Authentication Provider Aliases</a></h2> - - <p>Extended authentication providers can be created - within the configuration file and assigned an alias name. The alias - providers can then be referenced through the directives - <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> or - <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code> in - the same way as a base authentication provider. Besides the ability - to create and alias an extended provider, it also allows the same - extended authentication provider to be reference by multiple - locations.</p> - - <h3><a name="example" id="example">Examples</a></h3> - - <p>This example checks for passwords in two different text - files.</p> - - <div class="example"><h3>Checking multiple text password files</h3><pre class="prettyprint lang-config"># Check here first -<AuthnProviderAlias file file1> - AuthUserFile "/www/conf/passwords1" -</AuthnProviderAlias> - -# Then check here -<AuthnProviderAlias file file2> - AuthUserFile "/www/conf/passwords2" -</AuthnProviderAlias> - -<Directory "/var/web/pages/secure"> - AuthBasicProvider file1 file2 - - AuthType Basic - AuthName "Protected Area" - Require valid-user -</Directory></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"><AuthnProviderAlias ldap ldap-alias1> - AuthLDAPBindDN "cn=youruser,o=ctx" - AuthLDAPBindPassword yourpassword - AuthLDAPURL "ldap://ldap.host/o=ctx" -</AuthnProviderAlias> -<AuthnProviderAlias ldap ldap-other-alias> - AuthLDAPBindDN "cn=yourotheruser,o=dev" - AuthLDAPBindPassword yourotherpassword - AuthLDAPURL "ldap://other.ldap.host/o=dev?cn" -</AuthnProviderAlias> - -Alias "/secure" "/webpages/secure" -<Directory "/webpages/secure"> - 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. -</Directory></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 @@ -249,6 +177,78 @@ the specified alias</td></tr> 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 +<AuthnProviderAlias file file1> + AuthUserFile "/www/conf/passwords1" +</AuthnProviderAlias> + +# Then check here +<AuthnProviderAlias file file2> + AuthUserFile "/www/conf/passwords2" +</AuthnProviderAlias> + +<Directory "/var/web/pages/secure"> + AuthBasicProvider file1 file2 + + AuthType Basic + AuthName "Protected Area" + Require valid-user +</Directory></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"><AuthnProviderAlias ldap ldap-alias1> + AuthLDAPBindDN "cn=youruser,o=ctx" + AuthLDAPBindPassword yourpassword + AuthLDAPURL "ldap://ldap.host/o=ctx" +</AuthnProviderAlias> +<AuthnProviderAlias ldap ldap-other-alias> + AuthLDAPBindDN "cn=yourotheruser,o=dev" + AuthLDAPBindPassword yourotherpassword + AuthLDAPURL "ldap://other.ldap.host/o=dev?cn" +</AuthnProviderAlias> + +Alias "/secure" "/webpages/secure" +<Directory "/webpages/secure"> + 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. +</Directory></pre> +</div> + + +</div> </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_authn_core.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_authn_core.html.fr b/docs/manual/mod/mod_authn_core.html.fr index 264885bfd2..72d5537fe3 100644 --- a/docs/manual/mod/mod_authn_core.html.fr +++ b/docs/manual/mod/mod_authn_core.html.fr @@ -54,84 +54,6 @@ d'authentification</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="authnalias" id="authnalias">Cration d'alias de fournisseurs -d'authentification</a></h2> - - <p>Il est possible de crer des fournisseurs d'authentification - tendus dans le fichier de configuration et de leur assigner un - alias. Le fournisseur ainsi nomm peut alors tre rfrenc 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 - crer et attribuer un alias un fournisseur tendu, le mme - fournisseur d'authentification peut aussi tre rfrenc par - plusieurs sections relatives une zone du site web.</p> - - <h3><a name="example" id="example">Exemples</a></h3> - - <p>Cet exemple vrifie les mots de passe dans deux fichiers - textes diffrents.</p> - - <div class="example"><h3>Vrification dans plusieurs fichiers de mots de - passe au format texte</h3><pre class="prettyprint lang-config"># Premire vrification -<AuthnProviderAlias file file1> - AuthUserFile /www/conf/passwords1 -</AuthnProviderAlias> - -# Vrification suivante -<AuthnProviderAlias file file2> - AuthUserFile /www/conf/passwords2 -</AuthnProviderAlias> - -<Directory /var/web/pages/secure> - AuthBasicProvider file1 file2 - - AuthType Basic - AuthName "Protected Area" - Require valid-user -</Directory></pre> -</div> - - - - <p>Dans l'exemple ci-dessous, deux fournisseurs - d'authentification ldap sont crs partir du fournisseur ldap - de base, et se voient attribuer un alias. L'authentification - d'une mme zone peut alors tre traite par plusieurs serveurs - ldap :</p> - - <div class="example"><h3>Vrification auprs de plusieurs serveurs - LDAP</h3><pre class="prettyprint lang-config"><AuthnProviderAlias ldap ldap-alias1> - AuthLDAPBindDN cn=youruser,o=ctx - AuthLDAPBindPassword yourpassword - AuthLDAPURL ldap://ldap.host/o=ctx - </AuthnProviderAlias> - <AuthnProviderAlias ldap ldap-other-alias> - AuthLDAPBindDN cn=yourotheruser,o=dev - AuthLDAPBindPassword yourotherpassword - AuthLDAPURL ldap://other.ldap.host/o=dev?cn -</AuthnProviderAlias> - -Alias /secure /webpages/secure -<Directory /webpages/secure> - 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 implments dans le mme module que le - # fournisseur d'authentification. -</Directory></pre> -</div> - - -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="authname" id="authname">Directive</a> <a name="AuthName" id="AuthName">AuthName</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'identifiant de l'autorisation utiliser avec @@ -265,6 +187,84 @@ l'alias spcifi</td></tr> d'accs</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">Cration d'alias de fournisseurs +d'authentification</a></h2> + + <p>Il est possible de crer des fournisseurs d'authentification + tendus dans le fichier de configuration et de leur assigner un + alias. Le fournisseur ainsi nomm peut alors tre rfrenc 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 + crer et attribuer un alias un fournisseur tendu, le mme + fournisseur d'authentification peut aussi tre rfrenc par + plusieurs sections relatives une zone du site web.</p> + + <h3><a name="example" id="example">Exemples</a></h3> + + <p>Cet exemple vrifie les mots de passe dans deux fichiers + textes diffrents.</p> + + <div class="example"><h3>Vrification dans plusieurs fichiers de mots de + passe au format texte</h3><pre class="prettyprint lang-config"># Premire vrification +<AuthnProviderAlias file file1> + AuthUserFile /www/conf/passwords1 +</AuthnProviderAlias> + +# Vrification suivante +<AuthnProviderAlias file file2> + AuthUserFile /www/conf/passwords2 +</AuthnProviderAlias> + +<Directory /var/web/pages/secure> + AuthBasicProvider file1 file2 + + AuthType Basic + AuthName "Protected Area" + Require valid-user +</Directory></pre> +</div> + + + + <p>Dans l'exemple ci-dessous, deux fournisseurs + d'authentification ldap sont crs partir du fournisseur ldap + de base, et se voient attribuer un alias. L'authentification + d'une mme zone peut alors tre traite par plusieurs serveurs + ldap :</p> + + <div class="example"><h3>Vrification auprs de plusieurs serveurs + LDAP</h3><pre class="prettyprint lang-config"><AuthnProviderAlias ldap ldap-alias1> + AuthLDAPBindDN cn=youruser,o=ctx + AuthLDAPBindPassword yourpassword + AuthLDAPURL ldap://ldap.host/o=ctx + </AuthnProviderAlias> + <AuthnProviderAlias ldap ldap-other-alias> + AuthLDAPBindDN cn=yourotheruser,o=dev + AuthLDAPBindPassword yourotherpassword + AuthLDAPURL ldap://other.ldap.host/o=dev?cn +</AuthnProviderAlias> + +Alias /secure /webpages/secure +<Directory /webpages/secure> + 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 implments dans le mme module que le + # fournisseur d'authentification. +</Directory></pre> +</div> + + +</div> </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_authn_core.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_authn_dbd.html.en b/docs/manual/mod/mod_authn_dbd.html.en index 92766b3a8a..0290cda004 100644 --- a/docs/manual/mod/mod_authn_dbd.html.en +++ b/docs/manual/mod/mod_authn_dbd.html.en @@ -74,6 +74,70 @@ <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> @@ -148,70 +212,6 @@ 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"> en </a> | diff --git a/docs/manual/mod/mod_authn_dbd.html.fr b/docs/manual/mod/mod_authn_dbd.html.fr index 8a422e1f7a..e4a127f927 100644 --- a/docs/manual/mod/mod_authn_dbd.html.fr +++ b/docs/manual/mod/mod_authn_dbd.html.fr @@ -75,6 +75,81 @@ 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>Requte SQL servant vrifier le mot de passe d'un +utilisateur</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthDBDUserPWQuery <var>requte</var></code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire</td></tr> +<tr><th><a href="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 + spcifier une requte servant vrifier le mot de passe d'un + utilisateur donn. L'identifiant utilisateur sera transmis comme + paramtre sous forme d'une seule chane de caractres lorsque la + requte sera excute. Cet identifiant est rfrenc dans la requte + en utilisant le spcificateur de format <code>%s</code>.</p> + <pre class="prettyprint lang-config">AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"</pre> + + <p>La premire colonne du premier enregistrement renvoy par la + requte se prsentera sous la forme d'une chane de caractres + contenant le mot de passe chiffr. Les enregistrements suivants sont + ignors. 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 suprieure de + l'<a class="glossarylink" href="../glossary.html#apr" title="voir glossaire">APR</a>, toute valeur de colonne supplmentaire + du premier enregistrement renvoy par la requte sera stocke 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 dpend 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 dtails.</p> + +</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>Requte SQL servant vrifier 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>requte</var></code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire</td></tr> +<tr><th><a href="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> spcifie + une requte SQL servant vrifier une empreinte de mot + de passe pour un utilisateur et un identifiant d'authentification + donns au cours d'un processus d'authentification digest. Les + identifiants de l'utilisateur et de l'authentification + sont passs dans cet ordre comme paramtres l'excution de la + requte. Ils sont rfrencs dans la chane de la requte en + utilisant des spcificateurs 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 premire colonne du premier enregistrement renvoy par la + requte se prsentera sous la forme d'une chane de caractres + contenant le mot de passe chiffr. Les enregistrements suivants + seront ignors. 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 suprieure de + l'<a class="glossarylink" href="../glossary.html#apr" title="voir glossaire">APR</a>, toute valeur de colonne supplmentaire + du premier enregistrement renvoy par la requte sera stocke 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 dpend 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 dtails.</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> @@ -158,81 +233,6 @@ configuration ncessaire de certaines applications web. <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> pour plus d'informations propos de la scurit 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>Requte SQL servant vrifier le mot de passe d'un -utilisateur</td></tr> -<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthDBDUserPWQuery <var>requte</var></code></td></tr> -<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire</td></tr> -<tr><th><a href="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 - spcifier une requte servant vrifier le mot de passe d'un - utilisateur donn. L'identifiant utilisateur sera transmis comme - paramtre sous forme d'une seule chane de caractres lorsque la - requte sera excute. Cet identifiant est rfrenc dans la requte - en utilisant le spcificateur de format <code>%s</code>.</p> - <pre class="prettyprint lang-config">AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"</pre> - - <p>La premire colonne du premier enregistrement renvoy par la - requte se prsentera sous la forme d'une chane de caractres - contenant le mot de passe chiffr. Les enregistrements suivants sont - ignors. 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 suprieure de - l'<a class="glossarylink" href="../glossary.html#apr" title="voir glossaire">APR</a>, toute valeur de colonne supplmentaire - du premier enregistrement renvoy par la requte sera stocke 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 dpend 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 dtails.</p> - -</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>Requte SQL servant vrifier 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>requte</var></code></td></tr> -<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire</td></tr> -<tr><th><a href="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> spcifie - une requte SQL servant vrifier une empreinte de mot - de passe pour un utilisateur et un identifiant d'authentification - donns au cours d'un processus d'authentification digest. Les - identifiants de l'utilisateur et de l'authentification - sont passs dans cet ordre comme paramtres l'excution de la - requte. Ils sont rfrencs dans la chane de la requte en - utilisant des spcificateurs 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 premire colonne du premier enregistrement renvoy par la - requte se prsentera sous la forme d'une chane de caractres - contenant le mot de passe chiffr. Les enregistrements suivants - seront ignors. 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 suprieure de - l'<a class="glossarylink" href="../glossary.html#apr" title="voir glossaire">APR</a>, toute valeur de colonne supplmentaire - du premier enregistrement renvoy par la requte sera stocke 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 dpend 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 dtails.</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"> en </a> | diff --git a/docs/manual/mod/mod_authn_dbm.html.en b/docs/manual/mod/mod_authn_dbm.html.en index 59671c91cf..66cf82cbc7 100644 --- a/docs/manual/mod/mod_authn_dbm.html.en +++ b/docs/manual/mod/mod_authn_dbm.html.en @@ -66,7 +66,6 @@ <li><code class="program"><a href="../programs/htdbm.html">htdbm</a></code></li> <li><a href="../misc/password_encryptions.html">Password Formats</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AuthDBMType" id="AuthDBMType">AuthDBMType</a> <a name="authdbmtype" id="authdbmtype">Directive</a></h2> <table class="directive"> @@ -138,6 +137,7 @@ passwords for authentication</td></tr> <code class="program"><a href="../programs/htdbm.html">htdbm</a></code>.</p> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_authn_dbm.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_authn_dbm.html.fr b/docs/manual/mod/mod_authn_dbm.html.fr index fba73c24d2..da49cd1670 100644 --- a/docs/manual/mod/mod_authn_dbm.html.fr +++ b/docs/manual/mod/mod_authn_dbm.html.fr @@ -66,7 +66,6 @@ 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"> @@ -145,6 +144,7 @@ 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"> en </a> | diff --git a/docs/manual/mod/mod_authn_dbm.html.ja.utf8 b/docs/manual/mod/mod_authn_dbm.html.ja.utf8 index 1f2892ab15..797ea0ced7 100644 --- a/docs/manual/mod/mod_authn_dbm.html.ja.utf8 +++ b/docs/manual/mod/mod_authn_dbm.html.ja.utf8 @@ -68,7 +68,6 @@ <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code> </li> </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AuthDBMType" id="AuthDBMType">AuthDBMType</a> <a name="authdbmtype" id="authdbmtype">ディレクティブ</a></h2> <table class="directive"> @@ -132,6 +131,7 @@ 更新したりすることができます。</p> </div> + </div> <div class="bottomlang"> <p><span>翻訳済み言語: </span><a href="../en/mod/mod_authn_dbm.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_authn_dbm.html.ko.euc-kr b/docs/manual/mod/mod_authn_dbm.html.ko.euc-kr index 82b3e74b4e..3b7cbd0492 100644 --- a/docs/manual/mod/mod_authn_dbm.html.ko.euc-kr +++ b/docs/manual/mod/mod_authn_dbm.html.ko.euc-kr @@ -64,7 +64,6 @@ <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code> </li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AuthDBMType" id="AuthDBMType">AuthDBMType</a> <a name="authdbmtype" id="authdbmtype">þ</a></h2> <table class="directive"> @@ -124,6 +123,7 @@ DBM ȣ Ѵ.</p> </div> + </div> <div class="bottomlang"> <p><span> : </span><a href="../en/mod/mod_authn_dbm.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_authn_file.html.en b/docs/manual/mod/mod_authn_file.html.en index b221c885ba..e9f8a77755 100644 --- a/docs/manual/mod/mod_authn_file.html.en +++ b/docs/manual/mod/mod_authn_file.html.en @@ -62,7 +62,6 @@ <li><code class="program"><a href="../programs/htdigest.html">htdigest</a></code></li> <li><a href="../misc/password_encryptions.html">Password Formats</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AuthUserFile" id="AuthUserFile">AuthUserFile</a> <a name="authuserfile" id="authuserfile">Directive</a></h2> <table class="directive"> @@ -128,6 +127,7 @@ passwords for authentication</td></tr> </div> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_authn_file.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_authn_file.html.fr b/docs/manual/mod/mod_authn_file.html.fr index 2eba3a8034..91dd1d299f 100644 --- a/docs/manual/mod/mod_authn_file.html.fr +++ b/docs/manual/mod/mod_authn_file.html.fr @@ -63,7 +63,6 @@ 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"> @@ -136,6 +135,7 @@ passe</td></tr> </div> </div> + </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_authn_file.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_authn_file.html.ja.utf8 b/docs/manual/mod/mod_authn_file.html.ja.utf8 index 30070d0155..71dde525f8 100644 --- a/docs/manual/mod/mod_authn_file.html.ja.utf8 +++ b/docs/manual/mod/mod_authn_file.html.ja.utf8 @@ -67,7 +67,6 @@ <li><code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code></li> <li><code class="program"><a href="../programs/htdigest.html">htdigest</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AuthUserFile" id="AuthUserFile">AuthUserFile</a> <a name="authuserfile" id="authuserfile">ディレクティブ</a></h2> <table class="directive"> @@ -139,6 +138,7 @@ </div> </div> + </div> <div class="bottomlang"> <p><span>翻訳済み言語: </span><a href="../en/mod/mod_authn_file.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_authn_file.html.ko.euc-kr b/docs/manual/mod/mod_authn_file.html.ko.euc-kr index e4cba5699f..a0c8410e8c 100644 --- a/docs/manual/mod/mod_authn_file.html.ko.euc-kr +++ b/docs/manual/mod/mod_authn_file.html.ko.euc-kr @@ -63,7 +63,6 @@ <li><a href="../programs/htpasswd.html">htpasswd</a></li> <li><a href="../programs/htdigest.html">htdigest</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AuthUserFile" id="AuthUserFile">AuthUserFile</a> <a name="authuserfile" id="authuserfile">þ</a></h2> <table class="directive"> @@ -122,6 +121,7 @@ </div> </div> + </div> <div class="bottomlang"> <p><span> : </span><a href="../en/mod/mod_authn_file.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_authn_socache.html.en b/docs/manual/mod/mod_authn_socache.html.en index 438475ab34..eb9e2198fc 100644 --- a/docs/manual/mod/mod_authn_socache.html.en +++ b/docs/manual/mod/mod_authn_socache.html.en @@ -53,61 +53,6 @@ the load on backends</td></tr> <li><img alt="" src="../images/down.gif" /> <a href="#dev">Cacheing with custom modules</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="intro" id="intro">Authentication Cacheing</a></h2> - <p>Some users of more heavyweight authentication such as SQL database - lookups (<code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>) have reported it putting an - unacceptable load on their authentication provider. A typical case - in point is where an HTML page contains hundreds of objects - (images, scripts, stylesheets, media, etc), and a request to the page - generates hundreds of effectively-immediate requests for authenticated - additional contents.</p> - <p>mod_authn_socache provides a solution to this problem by - maintaining a cache of authentication credentials.</p> -</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="usage" id="usage">Usage</a></h2> - <p>The authentication cache should be used where authentication - lookups impose a significant load on the server, or a backend or - network. Authentication by file (<code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>) - or dbm (<code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code>) are unlikely to benefit, - as these are fast and lightweight in their own right (though in some - cases, such as a network-mounted file, cacheing may be worthwhile). - Other providers such as SQL or LDAP based authentication are more - likely to benefit, particularly where there is an observed - performance issue. Amongst the standard modules, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> manages its own cache, so only - <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> will usually benefit from this cache.</p> - <p>The basic rules to cache for a provider are:</p> - <ol><li>Include the provider you're cacheing for in an - <code class="directive">AuthnCacheProvideFor</code> directive.</li> - <li>List <var>socache</var> ahead of the provider you're - cacheing for in your <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> or <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code> directive.</li> - </ol> - <p>A simple usage example to accelerate <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> - using dbm as a cache engine:</p> - <pre class="prettyprint lang-config">#AuthnCacheSOCache is optional. If specified, it is server-wide -AuthnCacheSOCache dbm -<Directory /usr/www/myhost/private> - 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 -</Directory></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&revision=957072">r957072</a>, in which three authn providers are enabled for cacheing.</p> -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AuthnCacheContext" id="AuthnCacheContext">AuthnCacheContext</a> <a name="authncachecontext" id="authncachecontext">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specify a context string for use in the cache key</td></tr> @@ -222,6 +167,61 @@ Apache HTTP Server 2.4.7 and later</td></tr> your timeout.</p> </div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="intro" id="intro">Authentication Cacheing</a></h2> + <p>Some users of more heavyweight authentication such as SQL database + lookups (<code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>) have reported it putting an + unacceptable load on their authentication provider. A typical case + in point is where an HTML page contains hundreds of objects + (images, scripts, stylesheets, media, etc), and a request to the page + generates hundreds of effectively-immediate requests for authenticated + additional contents.</p> + <p>mod_authn_socache provides a solution to this problem by + maintaining a cache of authentication credentials.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="usage" id="usage">Usage</a></h2> + <p>The authentication cache should be used where authentication + lookups impose a significant load on the server, or a backend or + network. Authentication by file (<code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>) + or dbm (<code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code>) are unlikely to benefit, + as these are fast and lightweight in their own right (though in some + cases, such as a network-mounted file, cacheing may be worthwhile). + Other providers such as SQL or LDAP based authentication are more + likely to benefit, particularly where there is an observed + performance issue. Amongst the standard modules, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> manages its own cache, so only + <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> will usually benefit from this cache.</p> + <p>The basic rules to cache for a provider are:</p> + <ol><li>Include the provider you're cacheing for in an + <code class="directive">AuthnCacheProvideFor</code> directive.</li> + <li>List <var>socache</var> ahead of the provider you're + cacheing for in your <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> or <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code> directive.</li> + </ol> + <p>A simple usage example to accelerate <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> + using dbm as a cache engine:</p> + <pre class="prettyprint lang-config">#AuthnCacheSOCache is optional. If specified, it is server-wide +AuthnCacheSOCache dbm +<Directory /usr/www/myhost/private> + 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 +</Directory></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&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"> en </a> | diff --git a/docs/manual/mod/mod_authn_socache.html.fr b/docs/manual/mod/mod_authn_socache.html.fr index 45f69285e7..8368987404 100644 --- a/docs/manual/mod/mod_authn_socache.html.fr +++ b/docs/manual/mod/mod_authn_socache.html.fr @@ -53,73 +53,6 @@ la charge des serveurs d'arrire-plan</td></tr> <li><img alt="" src="../images/down.gif" /> <a href="#dev">La mise en cache avec les modules tiers</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="intro" id="intro">Mise en cache des donnes d'authentification</a></h2> - <p>Certains utilisateurs qui mettent oeuvre une authentification - lourde s'appuyant par exemple sur des requtes 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 requte pour cette page gnre des centaines de - sous-requtes effet immdiat pour des contenus supplmentaires - authentifis.</p> - <p>Pour rsoudre ce problme, mod_authn_socache fournit une solution - qui permet de maintenir un cache des donnes 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 - requtes d'authentification induisent une charge significative sur le - serveur, le serveur d'arrire-plan ou le rseau. Cette mise en cache - n'apportera probablement aucune amlioration 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 donnes dbm (<code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code>) car ces - mthodes sont de par leur conception rapides et lgres (la mise en - cache peut cependant s'avrer utile dans le cas o le fichier est - situ sur un montage rseau). Les fournisseurs d'authentification - bass sur SQL ou LDAP ont plus de chances de tirer parti de cette - mise en cache, en particulier lorsqu'un problme de performances est - dtect. <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> grant 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 rgles 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'acclrer - <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 dfini, il l'est pour - #l'ensemble du serveur -AuthnCacheSOCache dbm -<Directory /usr/www/myhost/private> - 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 -</Directory></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 dveloppeurs de modules doivent savoir que la mise en cache - avec mod_authn_socache doit tre active dans leurs modules. La - fonction de l'API <var>ap_authn_cache_store</var> permet de - mettre en cache les donnes d'authentification qu'un fournisseur - vient de rechercher ou de gnrer. Vous trouverez des exemples - d'utilisation <a href="http://svn.eu.apache.org/viewvc?view=revision&revision=957072">r957072</a>, o trois fournisseurs authn sont activs pour la mise - en cache.</p> -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="authncachecontext" id="authncachecontext">Directive</a> <a name="AuthnCacheContext" id="AuthnCacheContext">AuthnCacheContext</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spcifie une chane de contexte utiliser dans la cl du @@ -251,6 +184,73 @@ utiliser</td></tr> dfinissez la dure 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 donnes d'authentification</a></h2> + <p>Certains utilisateurs qui mettent oeuvre une authentification + lourde s'appuyant par exemple sur des requtes 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 requte pour cette page gnre des centaines de + sous-requtes effet immdiat pour des contenus supplmentaires + authentifis.</p> + <p>Pour rsoudre ce problme, mod_authn_socache fournit une solution + qui permet de maintenir un cache des donnes 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 + requtes d'authentification induisent une charge significative sur le + serveur, le serveur d'arrire-plan ou le rseau. Cette mise en cache + n'apportera probablement aucune amlioration 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 donnes dbm (<code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code>) car ces + mthodes sont de par leur conception rapides et lgres (la mise en + cache peut cependant s'avrer utile dans le cas o le fichier est + situ sur un montage rseau). Les fournisseurs d'authentification + bass sur SQL ou LDAP ont plus de chances de tirer parti de cette + mise en cache, en particulier lorsqu'un problme de performances est + dtect. <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> grant 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 rgles 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'acclrer + <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 dfini, il l'est pour + #l'ensemble du serveur +AuthnCacheSOCache dbm +<Directory /usr/www/myhost/private> + 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 +</Directory></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 dveloppeurs de modules doivent savoir que la mise en cache + avec mod_authn_socache doit tre active dans leurs modules. La + fonction de l'API <var>ap_authn_cache_store</var> permet de + mettre en cache les donnes d'authentification qu'un fournisseur + vient de rechercher ou de gnrer. Vous trouverez des exemples + d'utilisation <a href="http://svn.eu.apache.org/viewvc?view=revision&revision=957072">r957072</a>, o trois fournisseurs authn sont activs 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"> en </a> | diff --git a/docs/manual/mod/mod_authnz_fcgi.html.en b/docs/manual/mod/mod_authnz_fcgi.html.en index 8c64aa8a87..8100e61ac5 100644 --- a/docs/manual/mod/mod_authnz_fcgi.html.en +++ b/docs/manual/mod/mod_authnz_fcgi.html.en @@ -65,6 +65,127 @@ and Access Control</a></li> <li><code class="module"><a href="../mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="AuthnzFcgiCheckAuthnProvider" id="AuthnzFcgiCheckAuthnProvider">AuthnzFcgiCheckAuthnProvider</a> <a name="authnzfcgicheckauthnprovider" id="authnzfcgicheckauthnprovider">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enables a FastCGI application to handle the check_authn +authentication hook.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthnzFcgiCheckAuthnProvider <em>provider-name</em>|<code>None</code> +<em>option</em> ...</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_fcgi</td></tr> +</table> + <p>This directive is used to enable a FastCGI authorizer to + handle a specific processing phase of authentication or + authorization.</p> + + <p>Some capabilities of FastCGI authorizers require enablement + using this directive instead of + <code class="directive">AuthBasicProvider</code>:</p> + + <ul> + <li>Non-Basic authentication; generally, determining the user + id of the client and returning it from the authorizer; see the + <code>UserExpr</code> option below</li> + <li>Selecting a custom response code; for a non-200 response + from the authorizer, the code from the authorizer will be the + status of the response</li> + <li>Setting the body of a non-200 response; if the authorizer + provides a response body with a non-200 response, that body + will be returned to the client; up to 8192 bytes of text are + supported</li> + </ul> + + <dl> + <dt><em>provider-name</em></dt> + <dd>This is the name of a provider defined with <code class="directive"> + AuthnzFcgiDefineProvider</code>.</dd> + + <dt><code>None</code></dt> + <dd>Specify <code>None</code> to disable a provider enabled + with this directive in an outer scope, such as in a parent + directory.</dd> + + <dt><em>option</em></dt> + <dd>The following options are supported: + + <dl> + <dt>Authoritative On|Off (default On)</dt> + <dd>This controls whether or not other modules are allowed + to run when this module has a FastCGI authorizer configured + and it fails the request.</dd> + + <dt>DefaultUser <em>userid</em></dt> + <dd>When the authorizer returns success and <code>UserExpr</code> + is configured and evaluates to an empty string (e.g., authorizer + didn't return a variable), this value will be used as the user + id. This is typically used when the authorizer has a concept of + guest, or unauthenticated, users and guest users are mapped to + some specific user id for logging and other purposes.</dd> + + <dt>RequireBasicAuth On|Off (default Off)</dt> + <dd>This controls whether or not Basic auth is required + before passing the request to the authorizer. If required, + the authorizer won't be invoked without a user id and + password; 401 will be returned for a request without that.</dd> + + <dt>UserExpr <em>expr</em> (no default)</dt> + <dd>When Basic authentication isn't provided by the client + and the authorizer determines the user, this expression, + evaluated after calling the authorizer, determines the + user. The expression follows <a href="../expr.html"> + ap_expr syntax</a> and must resolve to a string. A typical + use is to reference a <code>Variable-<em>XXX</em></code> + setting returned by the authorizer using an option like + <code>UserExpr "%{reqenv:<em>XXX</em>}"</code>. If + this option is specified and the user id can't be retrieved + using the expression after a successful authentication, the + request will be rejected with a 500 error.</dd> + + </dl> + </dd> + </dl> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="AuthnzFcgiDefineProvider" id="AuthnzFcgiDefineProvider">AuthnzFcgiDefineProvider</a> <a name="authnzfcgidefineprovider" id="authnzfcgidefineprovider">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Defines a FastCGI application as a provider for +authentication and/or authorization</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthnzFcgiDefineProvider <em>type</em> <em>provider-name</em> +<em>backend-address</em></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_fcgi</td></tr> +</table> + <p>This directive is used to define a FastCGI application as + a provider for a particular phase of authentication or + authorization.</p> + + <dl> + <dt><em>type</em></dt> + <dd>This must be set to <em>authn</em> for authentication, + <em>authz</em> for authorization, or <em>authnz</em> for + a generic FastCGI authorizer which performs both checks.</dd> + + <dt><em>provider-name</em></dt> + <dd>This is used to assign a name to the provider which is + used in other directives such as + <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> + and + <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>.</dd> + + <dt><em>backend-address</em></dt> + <dd>This specifies the address of the application, in the form + <em>fcgi://hostname:port/</em>. The application process(es) + must be managed independently, such as with + <code class="program"><a href="../programs/fcgistarter.html">fcgistarter</a></code>.</dd> + </dl> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="invocations" id="invocations">Invocation modes</a></h2> @@ -407,127 +528,6 @@ Require FooAuthnz</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"> <p><span>Available Languages: </span><a href="../en/mod/mod_authnz_fcgi.html" title="English"> en </a></p> diff --git a/docs/manual/mod/mod_authnz_ldap.html.en b/docs/manual/mod/mod_authnz_ldap.html.en index cc55e99061..4a32d9cee0 100644 --- a/docs/manual/mod/mod_authnz_ldap.html.en +++ b/docs/manual/mod/mod_authnz_ldap.html.en @@ -101,6 +101,620 @@ 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>(&(<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>(&(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> @@ -806,620 +1420,6 @@ Require group mygroupfile</pre> </ul> </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>(&(<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>(&(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> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_authnz_ldap.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_authnz_ldap.html.fr b/docs/manual/mod/mod_authnz_ldap.html.fr index d92122188d..a3f86653b5 100644 --- a/docs/manual/mod/mod_authnz_ldap.html.fr +++ b/docs/manual/mod/mod_authnz_ldap.html.fr @@ -107,6 +107,703 @@ 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>Spcifie le prfixe 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>prfixe</em></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Dfaut:</a></th><td><code>AuthLDAPAuthorizePrefix AUTHORIZE_</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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 spcifier le prfixe ajout aux + variables d'environnement durant la phase d'autorisation. Si la + valeur spcifie est <em>AUTHENTICATE_</em>, les utilisateurs de ces + variables d'environnement verront les mmes informations, que le + serveur effectue une authentification, une autorisation, ou les + deux.</p> + + <div class="note"><h3>Note</h3> + Aucune variable d'autorisation n'est dfinie lorsqu'un utilisateur + s'est vu autoriser l'accs via la directive <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">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>Dtermine si l'on doit utiliser d'autres fournisseurs +d'authentification lorsque le serveur ne peut pas valider les donnes +d'authentification de l'utilisateur, alors que ce dernier possde 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">Dfaut:</a></th><td><code>AuthLDAPBindAuthoritative on</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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 dfaut, des fournisseurs d'authentification sont appels + si un utilisateur ne possde pas de DN, mais ne le sont pas si + l'utilisateur possde un DN et si son mot de passe ne peut pas tre + vrifi lors d'une connexion au serveur LDAP. Si la directive + <code class="directive"><a href="#authldapbindauthoritative">AuthLDAPBindAuthoritative</a></code> est + dfinie <em>off</em>, d'autres modules d'authentification + configurs 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 donnes d'authentification + fournies).</p> + <p>Ceci permet aux utilisateurs prsent 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> + +<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>rpertoire, .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 dfinir un DN optionnel pour se + connecter au serveur afin d'y rechercher des entres. Si aucun DN + n'est spcifi, <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>rpertoire, .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 spcifier un mot de passe utiliser en + conjonction avec le DN de connexion. Notez que ce mot de passe + constitue en gnral une donne sensible, et doit donc tre protg + de manire approprie. 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 rsultante sera + excute, et la premire ligne renvoye sur la sortie standard sera + utilise comme mot de passe.</p> +<pre class="prettyprint lang-config">#Mot de passe utilis tel quel +AuthLDAPBindPassword secret + +#Excute /path/to/program pour obtenir le mot de passe +AuthLDAPBindPassword exec:/path/to/program + +#Excute /path/to/otherProgram avec un argument pour obtenir le mot de passe +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">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 caractres</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 dfinir le chemin du fichier de configuration de la + correspondance langage/jeu de caractres. <var>chemin-fichier</var> + est un chemin relatif au rpertoire dfini 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 caractres. La + plupart des administrateurs utilisent le fichier + <code>charset.conv</code> fourni qui associe les extensions de + langage courantes leurs jeux de caractres.</p> + + <p>Le fichier contient des lignes au format suivant :</p> + + <div class="example"><p><code> + <var>extension de langage</var> <var>jeu de caractres</var> + [<var>Nom du langage</var>] ... + </code></p></div> + + <p>L'extension est insensible la casse. Les lignes vides et les + lignes commenant par un dise (<code>#</code>) sont ignores.</p> + +</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 donnes 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">Dfaut:</a></th><td><code>AuthLDAPCompareAsUser off</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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 dfinie, 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 donnes d'authentification + configures au niveau du serveur.</p> + + <p>Les vrifications d'autorisation <em>ldap-attribute</em>, + <em>ldap-user</em>, et <em>ldap-group</em> (niveau simple seulement) + utilisent des comparaisons.</p> + + <p>Cette directive n'a d'effet sur les comparaisons effectues au + cours des traitements de groupe imbriqus, et lorsque la directive + <code class="directive"><a href="#authldapsearchasuser">AuthLDAPSearchAsUser</a></code> + est aussi active.</p> + + <p>Cette directive ne doit tre utilise que si votre serveur LDAP + n'autorise pas les recherches anonymes, ou si vous ne pouvez pas + utiliser de nom d'utilisateur ddi 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="#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">Dfaut:</a></th><td><code>AuthLDAPCompareDNOnServer on</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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 dfinie 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 mthode 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 spcifi par la directive <a href="#reqdn"><code>Require dn</code></a>, puis extraire ce DN et le + comparer avec le DN extrait de l'entre 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 chanes. Cette dernire approche peut produire + des faux ngatifs, 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 acclrer + la comparaison de DNs dans la plupart des 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">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 drfrencer 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">Dfaut:</a></th><td><code>AuthLDAPDereferenceAliases always</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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 spcifier quel moment + <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> va drfrencer les alias au cours + des oprations lies LDAP. La valeur par dfaut est + <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">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 vrifier 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">Dfaut:</a></th><td><code>AuthLDAPGroupAttribute member uniquemember</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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 spcifier quel attribut LDAP est + utilis pour vrifier l'appartenance d'un utilisateur un + groupe. On peut spcifier plusieurs attributs en rptant cette + directive plusieurs fois. Si la directive n'est pas dfinie, + <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> utilise les attributs + <code>member</code> et <code>uniquemember</code>.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="authldapgroupattributeisdn" id="authldapgroupattributeisdn">Directive</a> <a name="AuthLDAPGroupAttributeIsDN" id="AuthLDAPGroupAttributeIsDN">AuthLDAPGroupAttributeIsDN</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise le DN de l'utilisateur pour vrifier 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">Dfaut:</a></th><td><code>AuthLDAPGroupAttributeIsDN on</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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 dfinie <code>on</code>, cette directive + indique que c'est le DN de l'utilisateur qui doit tre utilis pour + vrifier 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 + vrifier 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> + vrifiera si <code>bjenson</code> est un membre du groupe.</p> + +</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>Dtermine 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 manire anonyme, ou en utilisant des donnes d'authentification +codes 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">Dfaut:</a></th><td><code>AuthLDAPInitialBindAsUser off</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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 dfaut, le serveur convertit le nom d'utilisateur pour + l'authentification de base en nom distinctif LDAP (DN) soit de + manire anonyme, soit avec un couple nom/mot de passe ddi. Cette + directive permet de forcer le serveur utiliser les vritables 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 ncessite de lgres modifications, voir la directive <code class="directive"><a href="#authldapinitialbindpattern">AuthLDAPInitialBindPattern</a></code>.</p> + + <p>Cette directive ne doit tre utilise que si votre serveur LDAP + n'autorise pas les recherches anonymes, ou si vous ne pouvez pas + utiliser de nom d'utilisateur ddi via la directive <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>. + </p> + + <div class="note"><h3>Non disponible dans la cas d'une autorisation seule</h3> + On ne peut utiliser cette directive que si ce module + effectue une authentification, et n'a aucun effet si ce module + n'est utilis que pour les processus d'autorisation. + </div> + +<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>Spcifie la modification a apporter au nom d'utilisateur +pour l'authentification de base lors de l'authentification auprs 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">Dfaut:</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>rpertoire, .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 + dfinie <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> spcifis.</p> + + <p>L'expression rationnelle est compare au nom d'utilisateur pour + l'authentification de base courant. L'argument + <var>substitution</var> peut contenir des rfrences arrires, mais + n'effectue aucune autre interpolation de variable.</p> + + <p>Cette directive ne doit tre utilise que si votre serveur LDAP + n'autorise pas les recherches anonymes, ou si vous ne pouvez pas + utiliser de nom d'utilisateur ddi via la directive <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>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>Dbogage</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>Spcifie 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">Dfaut:</a></th><td><code>AuthLDAPMaxSubGroupDepth 0</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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 dfaut tait 10 dans les versions 2.4.x et les +premires versions 2.5</td></tr> +</table> + <p>Lorsque cette directive est dfinie une valeur <code>X</code> + non nulle, en combinaison avec l'utilisation de la directive + <code>Require ldap-group DN-groupe</code>, les donnes de connexion + fournies seront utilises pour vrifier 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> spcifie par la directive.</p> + <p>Se rfrer la section <a href="#reqgroup"><code>Require + ldap-group</code></a> pour un exemple plus dtaill.</p> + + <div class="note"><h3>Performances dans le cas des groupes imbriqus</h3> + <p>Lorsque les directives + <code class="directive">AuthLDAPSubGroupAttribute</code> et + <code class="directive">AuthLDAPGroupAttribute</code> se recouvrent (comme + c'est le cas par dfaut et requis par les schmas LDAP courants), la + recherche de sous-groupes au sein de grands groupes peut tre trs + longue. Si vos groupes sont trs grands et non imbriqus, dfinissez + 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>Spcifie l'attribut dont la valeur renvoye au cours de la +requte de l'utilisateur sera utilise pour dfinir 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">Dfaut:</a></th><td><code>none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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 dfinie, la variable d'environnement + <code>REMOTE_USER</code> sera dfinie la valeur de l'attribut + spcifi. Assurez-vous que cet attribut soit bien inclus dans la + liste d'attributs spcifis dans la dfinition de AuthLDAPUrl ; dans + le cas contraire, cette directive n'aurait aucun effet. Si elle est + prsente, cette directive l'emporte sur <code class="directive"><a href="#authldapremoteuserisdn">AuthLDAPRemoteUserIsDN</a></code>. Elle + peut s'avrer 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 ncessite 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 dfinir 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">Dfaut:</a></th><td><code>AuthLDAPRemoteUserIsDN off</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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 dfinie 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 dfinie off par + dfaut.</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 donnes 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">Dfaut:</a></th><td><code>AuthLDAPSearchAsUser off</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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 dfinie, 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 dfinir 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 donnes + d'authentification configures au niveau du serveur.</p> + + <p>Les vrifications 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 effectues au + cours des traitements de groupe imbriqus, et lorsque la directive + <code class="directive"><a href="#authldapcompareasuser">AuthLDAPCompareAsUser</a></code> + est aussi active.</p> + + <p>Cette directive ne doit tre utilise que si votre serveur LDAP + n'autorise pas les recherches anonymes, ou si vous ne pouvez pas + utiliser de nom d'utilisateur ddi 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>Spcifie les noms d'attribut, un par directive, utiliss +pour diffrencier les membres du groupe courant qui sont eux-mmes 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">Dfaut:</a></th><td><code>AuthLDAPSubgroupAttribute member uniquemember</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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-mmes des groupes (appels + sous-groupes ou groupes imbriqus). La directive + <code>AuthLDAPSubGroupAttribute</code> spcifie l'attribut utilis + pour identifier les groupes, alors que la directive + <code>AuthLDAPGroupAttribute</code> spcifie l'attribut utilis + pour identifier les utilisateurs. On peut spcifier plusieurs + attributs en rptant la directive plusieurs fois. Si elle n'est pas + dfinie, <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>Spcifie 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">Dfaut:</a></th><td><code>AuthLDAPSubGroupClass groupOfNames groupOfUniqueNames</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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-mmes des groupes (appels + sous-groupes ou groupes imbriqus). 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 spcifier les valeurs + d'objectClass LDAP utilises pour vrifier que certains membres sont + en fait des objets groupe. Les sous-groupes ainsi identifis peuvent + alors faire l'objet d'une recherche d'autres membres utilisateurs ou + sous-groupes. On peut spcifier plusieurs attributs en rptant + cette directive plusieurs fois. Si cette directive n'est pas + dfinie, <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 spcifier les paramtres 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>rpertoire, .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 spcifier les + paramtres utiliser pour la recherche dans l'annuaire LDAP. La + syntaxe de l'URL est :</p> +<div class="example"><p><code>ldap://hte:port/DN-de-base?attribut?porte?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 spcifiez plusieurs +serveurs, vous devez en entourer la liste avec des guillemets ; dans le +cas contraire, vous gnrerez une erreur : "AuthLDAPURL takes one +argument, URL to define LDAP connection..".</em> Vous pouvez bien +entendu ajouter des paramtres de recherche chacun des serveurs +spcifis.</p> + +<dl> +<dt>ldap</dt> + + <dd>Pour ldap non scuris, utilisez la chane + <code>ldap</code>. Pour ldap scuris, utilisez la place la + chane <code>ldaps</code>. LDAP scuris n'est disponible que si + Apache a t li avec une bibliothque LDAP supportant SSL.</dd> + +<dt>hte:port</dt> + + <dd> + <p>Il s'agit du nom/port du serveur ldap + (dont la valeur par dfaut est + <code>localhost:389</code> pour <code>ldap</code>, et + <code>localhost:636</code> pour <code>ldaps</code>). Pour + spcifier plusieurs serveurs LDAP redondants, indiquez + simplement leur liste en les sparant 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 succs. Notez qu'en cas de multiples serveurs + LDAP, l'ensemble de l'URL LDAP doit tre entoure de + guillemets.</p> + + <p>lorsqu'une connection a t tablie avec un serveur, elle + reste active pendant toute la dure 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 commenant 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 + vritable 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 lances. Il doit au moins + correspondre la racine de votre annuaire, mais vous pouvez + aussi indiquer une branche plus spcifique.</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 spars par des virgules, + seul le premier sera retenu, sans tenir compte des autres + attributs fournis. Si aucun attribut n'est fourni, l'attribut + par dfaut est <code>uid</code>. Il est judicieux de choisir un + attribut dont la valeur sera unique parmi toutes les entres de + la branche de l'annuaire que vous aurez dfinie. Tous les + attributs spcifis seront enregistrs dans des variables + d'environnement avec le prfixe AUTHENTICATE_, afin de pouvoir + tre utiliss par d'autres modules.</dd> + +<dt>porte</dt> + + <dd>Il s'agit de la porte de la recherche. Elle peut prendre + les valeurs <code>one</code> ou <code>sub</code>. Notez que la + RFC 2255 supporte aussi une porte de valeur <code>base</code>, + mais cette dernire n'est pas supporte par le module. Si la + porte n'est pas dfinie, ou si elle est dfinie + <code>base</code>, c'est la valeur de porte par dfaut + <code>sub</code> qui sera utilise.</dd> + +<dt>filtre</dt> + + <dd>Il s'agit d'un filtre de recherche LDAP valide. Si aucun + filtre n'est spcifi, le filtre par dfaut + <code>(objectClass=*)</code> sera utilis, ce qui corrspond + une recherche de tous les types d'objets de l'arborescence. La + taille des filtres est limite environ 8000 caractres (valeur + de la macro <code>MAX_STRING_LEN</code> dans le code source + d'Apache), ce qui s'avre plus que suffisant pour la plupart des + applications. Le mot-cl <code>none</code> permet de dsactiver + l'utilisation des filtres, ce qui peut s'avrer ncessaire avec + certains serveurs LDAP primitifs.</dd> +</dl> + + <p>Pour une recherche, les attribut, filtre et nom d'utilisateur + fournis par le client HTTP sont combins pour crer un filtre de + recherche du style : + <code>(&(<em>filtre</em>)(<em>attribut</em> + =<em>nom-utilisateur</em>))</code>.</p> + + <p>Par exemple, considrons 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>(&(posixid=*)(cn=Babs Jenson))</code>.</p> + + <p>On peut encore ajouter un paramtre optionnel pour permettre + l'URL LDAP de surcharger le type de connexion. Ce paramtre peut + prendre l'une des valeurs suivantes :</p> + +<dl> + <dt>NONE</dt> + <dd>tablit une connexion non scurise sur le port LDAP par + dfaut, ce qui est quivalent <code>ldap://</code> sur le port + 389.</dd> + <dt>SSL</dt> + <dd>tablit une connexion scurise sur le port LDAP scuris + par dfaut, ce qui est quivalent <code>ldaps://</code>.</dd> + <dt>TLS | STARTTLS</dt> + <dd>tablit une connexion scurise par lvation de niveau sur + le port LDAP par dfaut. Cette connexion sera initialise sur le + port 389 par dfaut, puis leve un niveau de connexion + scurise sur le mme port.</dd> +</dl> + + <p>Voir plus haut pour des exemples d'URLs dfinies 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> @@ -886,703 +1583,6 @@ Require group mygroupfile</pre> </ul> </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>Spcifie le prfixe 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>prfixe</em></code></td></tr> -<tr><th><a href="directive-dict.html#Default">Dfaut:</a></th><td><code>AuthLDAPAuthorizePrefix AUTHORIZE_</code></td></tr> -<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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 spcifier le prfixe ajout aux - variables d'environnement durant la phase d'autorisation. Si la - valeur spcifie est <em>AUTHENTICATE_</em>, les utilisateurs de ces - variables d'environnement verront les mmes informations, que le - serveur effectue une authentification, une autorisation, ou les - deux.</p> - - <div class="note"><h3>Note</h3> - Aucune variable d'autorisation n'est dfinie lorsqu'un utilisateur - s'est vu autoriser l'accs via la directive <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">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>Dtermine si l'on doit utiliser d'autres fournisseurs -d'authentification lorsque le serveur ne peut pas valider les donnes -d'authentification de l'utilisateur, alors que ce dernier possde 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">Dfaut:</a></th><td><code>AuthLDAPBindAuthoritative on</code></td></tr> -<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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 dfaut, des fournisseurs d'authentification sont appels - si un utilisateur ne possde pas de DN, mais ne le sont pas si - l'utilisateur possde un DN et si son mot de passe ne peut pas tre - vrifi lors d'une connexion au serveur LDAP. Si la directive - <code class="directive"><a href="#authldapbindauthoritative">AuthLDAPBindAuthoritative</a></code> est - dfinie <em>off</em>, d'autres modules d'authentification - configurs 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 donnes d'authentification - fournies).</p> - <p>Ceci permet aux utilisateurs prsent 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> - -<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>rpertoire, .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 dfinir un DN optionnel pour se - connecter au serveur afin d'y rechercher des entres. Si aucun DN - n'est spcifi, <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>rpertoire, .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 spcifier un mot de passe utiliser en - conjonction avec le DN de connexion. Notez que ce mot de passe - constitue en gnral une donne sensible, et doit donc tre protg - de manire approprie. 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 rsultante sera - excute, et la premire ligne renvoye sur la sortie standard sera - utilise comme mot de passe.</p> -<pre class="prettyprint lang-config">#Mot de passe utilis tel quel -AuthLDAPBindPassword secret - -#Excute /path/to/program pour obtenir le mot de passe -AuthLDAPBindPassword exec:/path/to/program - -#Excute /path/to/otherProgram avec un argument pour obtenir le mot de passe -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">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 caractres</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 dfinir le chemin du fichier de configuration de la - correspondance langage/jeu de caractres. <var>chemin-fichier</var> - est un chemin relatif au rpertoire dfini 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 caractres. La - plupart des administrateurs utilisent le fichier - <code>charset.conv</code> fourni qui associe les extensions de - langage courantes leurs jeux de caractres.</p> - - <p>Le fichier contient des lignes au format suivant :</p> - - <div class="example"><p><code> - <var>extension de langage</var> <var>jeu de caractres</var> - [<var>Nom du langage</var>] ... - </code></p></div> - - <p>L'extension est insensible la casse. Les lignes vides et les - lignes commenant par un dise (<code>#</code>) sont ignores.</p> - -</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 donnes 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">Dfaut:</a></th><td><code>AuthLDAPCompareAsUser off</code></td></tr> -<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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 dfinie, 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 donnes d'authentification - configures au niveau du serveur.</p> - - <p>Les vrifications d'autorisation <em>ldap-attribute</em>, - <em>ldap-user</em>, et <em>ldap-group</em> (niveau simple seulement) - utilisent des comparaisons.</p> - - <p>Cette directive n'a d'effet sur les comparaisons effectues au - cours des traitements de groupe imbriqus, et lorsque la directive - <code class="directive"><a href="#authldapsearchasuser">AuthLDAPSearchAsUser</a></code> - est aussi active.</p> - - <p>Cette directive ne doit tre utilise que si votre serveur LDAP - n'autorise pas les recherches anonymes, ou si vous ne pouvez pas - utiliser de nom d'utilisateur ddi 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="#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">Dfaut:</a></th><td><code>AuthLDAPCompareDNOnServer on</code></td></tr> -<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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 dfinie 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 mthode 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 spcifi par la directive <a href="#reqdn"><code>Require dn</code></a>, puis extraire ce DN et le - comparer avec le DN extrait de l'entre 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 chanes. Cette dernire approche peut produire - des faux ngatifs, 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 acclrer - la comparaison de DNs dans la plupart des 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">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 drfrencer 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">Dfaut:</a></th><td><code>AuthLDAPDereferenceAliases always</code></td></tr> -<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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 spcifier quel moment - <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> va drfrencer les alias au cours - des oprations lies LDAP. La valeur par dfaut est - <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">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 vrifier 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">Dfaut:</a></th><td><code>AuthLDAPGroupAttribute member uniquemember</code></td></tr> -<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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 spcifier quel attribut LDAP est - utilis pour vrifier l'appartenance d'un utilisateur un - groupe. On peut spcifier plusieurs attributs en rptant cette - directive plusieurs fois. Si la directive n'est pas dfinie, - <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> utilise les attributs - <code>member</code> et <code>uniquemember</code>.</p> - -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="directive-section"><h2><a name="authldapgroupattributeisdn" id="authldapgroupattributeisdn">Directive</a> <a name="AuthLDAPGroupAttributeIsDN" id="AuthLDAPGroupAttributeIsDN">AuthLDAPGroupAttributeIsDN</a></h2> -<table class="directive"> -<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise le DN de l'utilisateur pour vrifier 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">Dfaut:</a></th><td><code>AuthLDAPGroupAttributeIsDN on</code></td></tr> -<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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 dfinie <code>on</code>, cette directive - indique que c'est le DN de l'utilisateur qui doit tre utilis pour - vrifier 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 - vrifier 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> - vrifiera si <code>bjenson</code> est un membre du groupe.</p> - -</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>Dtermine 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 manire anonyme, ou en utilisant des donnes d'authentification -codes 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">Dfaut:</a></th><td><code>AuthLDAPInitialBindAsUser off</code></td></tr> -<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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 dfaut, le serveur convertit le nom d'utilisateur pour - l'authentification de base en nom distinctif LDAP (DN) soit de - manire anonyme, soit avec un couple nom/mot de passe ddi. Cette - directive permet de forcer le serveur utiliser les vritables 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 ncessite de lgres modifications, voir la directive <code class="directive"><a href="#authldapinitialbindpattern">AuthLDAPInitialBindPattern</a></code>.</p> - - <p>Cette directive ne doit tre utilise que si votre serveur LDAP - n'autorise pas les recherches anonymes, ou si vous ne pouvez pas - utiliser de nom d'utilisateur ddi via la directive <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>. - </p> - - <div class="note"><h3>Non disponible dans la cas d'une autorisation seule</h3> - On ne peut utiliser cette directive que si ce module - effectue une authentification, et n'a aucun effet si ce module - n'est utilis que pour les processus d'autorisation. - </div> - -<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>Spcifie la modification a apporter au nom d'utilisateur -pour l'authentification de base lors de l'authentification auprs 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">Dfaut:</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>rpertoire, .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 - dfinie <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> spcifis.</p> - - <p>L'expression rationnelle est compare au nom d'utilisateur pour - l'authentification de base courant. L'argument - <var>substitution</var> peut contenir des rfrences arrires, mais - n'effectue aucune autre interpolation de variable.</p> - - <p>Cette directive ne doit tre utilise que si votre serveur LDAP - n'autorise pas les recherches anonymes, ou si vous ne pouvez pas - utiliser de nom d'utilisateur ddi via la directive <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>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>Dbogage</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>Spcifie 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">Dfaut:</a></th><td><code>AuthLDAPMaxSubGroupDepth 0</code></td></tr> -<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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 dfaut tait 10 dans les versions 2.4.x et les -premires versions 2.5</td></tr> -</table> - <p>Lorsque cette directive est dfinie une valeur <code>X</code> - non nulle, en combinaison avec l'utilisation de la directive - <code>Require ldap-group DN-groupe</code>, les donnes de connexion - fournies seront utilises pour vrifier 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> spcifie par la directive.</p> - <p>Se rfrer la section <a href="#reqgroup"><code>Require - ldap-group</code></a> pour un exemple plus dtaill.</p> - - <div class="note"><h3>Performances dans le cas des groupes imbriqus</h3> - <p>Lorsque les directives - <code class="directive">AuthLDAPSubGroupAttribute</code> et - <code class="directive">AuthLDAPGroupAttribute</code> se recouvrent (comme - c'est le cas par dfaut et requis par les schmas LDAP courants), la - recherche de sous-groupes au sein de grands groupes peut tre trs - longue. Si vos groupes sont trs grands et non imbriqus, dfinissez - 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>Spcifie l'attribut dont la valeur renvoye au cours de la -requte de l'utilisateur sera utilise pour dfinir 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">Dfaut:</a></th><td><code>none</code></td></tr> -<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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 dfinie, la variable d'environnement - <code>REMOTE_USER</code> sera dfinie la valeur de l'attribut - spcifi. Assurez-vous que cet attribut soit bien inclus dans la - liste d'attributs spcifis dans la dfinition de AuthLDAPUrl ; dans - le cas contraire, cette directive n'aurait aucun effet. Si elle est - prsente, cette directive l'emporte sur <code class="directive"><a href="#authldapremoteuserisdn">AuthLDAPRemoteUserIsDN</a></code>. Elle - peut s'avrer 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 ncessite 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 dfinir 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">Dfaut:</a></th><td><code>AuthLDAPRemoteUserIsDN off</code></td></tr> -<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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 dfinie 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 dfinie off par - dfaut.</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 donnes 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">Dfaut:</a></th><td><code>AuthLDAPSearchAsUser off</code></td></tr> -<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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 dfinie, 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 dfinir 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 donnes - d'authentification configures au niveau du serveur.</p> - - <p>Les vrifications 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 effectues au - cours des traitements de groupe imbriqus, et lorsque la directive - <code class="directive"><a href="#authldapcompareasuser">AuthLDAPCompareAsUser</a></code> - est aussi active.</p> - - <p>Cette directive ne doit tre utilise que si votre serveur LDAP - n'autorise pas les recherches anonymes, ou si vous ne pouvez pas - utiliser de nom d'utilisateur ddi 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>Spcifie les noms d'attribut, un par directive, utiliss -pour diffrencier les membres du groupe courant qui sont eux-mmes 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">Dfaut:</a></th><td><code>AuthLDAPSubgroupAttribute member uniquemember</code></td></tr> -<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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-mmes des groupes (appels - sous-groupes ou groupes imbriqus). La directive - <code>AuthLDAPSubGroupAttribute</code> spcifie l'attribut utilis - pour identifier les groupes, alors que la directive - <code>AuthLDAPGroupAttribute</code> spcifie l'attribut utilis - pour identifier les utilisateurs. On peut spcifier plusieurs - attributs en rptant la directive plusieurs fois. Si elle n'est pas - dfinie, <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>Spcifie 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">Dfaut:</a></th><td><code>AuthLDAPSubGroupClass groupOfNames groupOfUniqueNames</code></td></tr> -<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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-mmes des groupes (appels - sous-groupes ou groupes imbriqus). 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 spcifier les valeurs - d'objectClass LDAP utilises pour vrifier que certains membres sont - en fait des objets groupe. Les sous-groupes ainsi identifis peuvent - alors faire l'objet d'une recherche d'autres membres utilisateurs ou - sous-groupes. On peut spcifier plusieurs attributs en rptant - cette directive plusieurs fois. Si cette directive n'est pas - dfinie, <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 spcifier les paramtres 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>rpertoire, .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 spcifier les - paramtres utiliser pour la recherche dans l'annuaire LDAP. La - syntaxe de l'URL est :</p> -<div class="example"><p><code>ldap://hte:port/DN-de-base?attribut?porte?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 spcifiez plusieurs -serveurs, vous devez en entourer la liste avec des guillemets ; dans le -cas contraire, vous gnrerez une erreur : "AuthLDAPURL takes one -argument, URL to define LDAP connection..".</em> Vous pouvez bien -entendu ajouter des paramtres de recherche chacun des serveurs -spcifis.</p> - -<dl> -<dt>ldap</dt> - - <dd>Pour ldap non scuris, utilisez la chane - <code>ldap</code>. Pour ldap scuris, utilisez la place la - chane <code>ldaps</code>. LDAP scuris n'est disponible que si - Apache a t li avec une bibliothque LDAP supportant SSL.</dd> - -<dt>hte:port</dt> - - <dd> - <p>Il s'agit du nom/port du serveur ldap - (dont la valeur par dfaut est - <code>localhost:389</code> pour <code>ldap</code>, et - <code>localhost:636</code> pour <code>ldaps</code>). Pour - spcifier plusieurs serveurs LDAP redondants, indiquez - simplement leur liste en les sparant 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 succs. Notez qu'en cas de multiples serveurs - LDAP, l'ensemble de l'URL LDAP doit tre entoure de - guillemets.</p> - - <p>lorsqu'une connection a t tablie avec un serveur, elle - reste active pendant toute la dure 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 commenant 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 - vritable 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 lances. Il doit au moins - correspondre la racine de votre annuaire, mais vous pouvez - aussi indiquer une branche plus spcifique.</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 spars par des virgules, - seul le premier sera retenu, sans tenir compte des autres - attributs fournis. Si aucun attribut n'est fourni, l'attribut - par dfaut est <code>uid</code>. Il est judicieux de choisir un - attribut dont la valeur sera unique parmi toutes les entres de - la branche de l'annuaire que vous aurez dfinie. Tous les - attributs spcifis seront enregistrs dans des variables - d'environnement avec le prfixe AUTHENTICATE_, afin de pouvoir - tre utiliss par d'autres modules.</dd> - -<dt>porte</dt> - - <dd>Il s'agit de la porte de la recherche. Elle peut prendre - les valeurs <code>one</code> ou <code>sub</code>. Notez que la - RFC 2255 supporte aussi une porte de valeur <code>base</code>, - mais cette dernire n'est pas supporte par le module. Si la - porte n'est pas dfinie, ou si elle est dfinie - <code>base</code>, c'est la valeur de porte par dfaut - <code>sub</code> qui sera utilise.</dd> - -<dt>filtre</dt> - - <dd>Il s'agit d'un filtre de recherche LDAP valide. Si aucun - filtre n'est spcifi, le filtre par dfaut - <code>(objectClass=*)</code> sera utilis, ce qui corrspond - une recherche de tous les types d'objets de l'arborescence. La - taille des filtres est limite environ 8000 caractres (valeur - de la macro <code>MAX_STRING_LEN</code> dans le code source - d'Apache), ce qui s'avre plus que suffisant pour la plupart des - applications. Le mot-cl <code>none</code> permet de dsactiver - l'utilisation des filtres, ce qui peut s'avrer ncessaire avec - certains serveurs LDAP primitifs.</dd> -</dl> - - <p>Pour une recherche, les attribut, filtre et nom d'utilisateur - fournis par le client HTTP sont combins pour crer un filtre de - recherche du style : - <code>(&(<em>filtre</em>)(<em>attribut</em> - =<em>nom-utilisateur</em>))</code>.</p> - - <p>Par exemple, considrons 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>(&(posixid=*)(cn=Babs Jenson))</code>.</p> - - <p>On peut encore ajouter un paramtre optionnel pour permettre - l'URL LDAP de surcharger le type de connexion. Ce paramtre peut - prendre l'une des valeurs suivantes :</p> - -<dl> - <dt>NONE</dt> - <dd>tablit une connexion non scurise sur le port LDAP par - dfaut, ce qui est quivalent <code>ldap://</code> sur le port - 389.</dd> - <dt>SSL</dt> - <dd>tablit une connexion scurise sur le port LDAP scuris - par dfaut, ce qui est quivalent <code>ldaps://</code>.</dd> - <dt>TLS | STARTTLS</dt> - <dd>tablit une connexion scurise par lvation de niveau sur - le port LDAP par dfaut. Cette connexion sera initialise sur le - port 389 par dfaut, puis leve un niveau de connexion - scurise sur le mme port.</dd> -</dl> - - <p>Voir plus haut pour des exemples d'URLs dfinies par la directive - <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code>.</p> - -</div> </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_authnz_ldap.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_authz_core.html.en b/docs/manual/mod/mod_authz_core.html.en index 3f0c16c5ce..512dc5663d 100644 --- a/docs/manual/mod/mod_authz_core.html.en +++ b/docs/manual/mod/mod_authz_core.html.en @@ -61,210 +61,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#authzalias">Creating Authorization Provider Aliases</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="logic" id="logic">Authorization Containers</a></h2> - - <p>The authorization container directives - <code class="directive"><a href="#requireall"><RequireAll></a></code>, - <code class="directive"><a href="#requireany"><RequireAny></a></code> - and - <code class="directive"><a href="#requirenone"><RequireNone></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"><Directory "/www/mydocs"> - <RequireAll> - <RequireAny> - Require user superadmin - <RequireAll> - Require group admins - Require ldap-group "cn=Administrators,o=Airius" - <RequireAny> - Require group sales - Require ldap-attribute dept="sales" - </RequireAny> - </RequireAll> - </RequireAny> - <RequireNone> - Require group temps - Require ldap-group "cn=Temporary Employees,o=Airius" - </RequireNone> - </RequireAll> -</Directory></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 -<Directory "/docroot"> - Require env let_me_in -</Directory></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"><RequireAny> - Require method GET POST OPTIONS - Require valid-user -</RequireAny></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 && %{TIME_HOUR} -le 17</pre> - - - <pre class="prettyprint lang-config"><RequireAll> - Require expr "!(%{QUERY_STRING} =~ /secret/)" - Require expr "%{REQUEST_URI} in { '/example.cgi', '/other.cgi' }" -</RequireAll></pre> - - - <pre class="prettyprint lang-config">Require expr "!(%{QUERY_STRING} =~ /secret/) && %{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"><AuthzProviderAlias ldap-group ldap-group-alias1 "cn=my-group,o=ctx"> - AuthLDAPBindDN "cn=youruser,o=ctx" - AuthLDAPBindPassword yourpassword - AuthLDAPURL "ldap://ldap.host/o=ctx" -</AuthzProviderAlias> - -<AuthzProviderAlias ldap-group ldap-group-alias2 "cn=my-other-group,o=dev"> - AuthLDAPBindDN "cn=yourotheruser,o=dev" - AuthLDAPBindPassword yourotherpassword - AuthLDAPURL "ldap://other.ldap.host/o=dev?cn" -</AuthzProviderAlias> - -Alias "/secure" "/webpages/secure" -<Directory "/webpages/secure"> - Require all granted - - AuthBasicProvider file - - AuthType Basic - AuthName LDAP_Protected_Place - - #implied OR operation - Require ldap-group-alias1 - Require ldap-group-alias2 -</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="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 @@ -632,6 +428,210 @@ must succeed for the enclosing directive to not fail.</td></tr> 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"><RequireAll></a></code>, + <code class="directive"><a href="#requireany"><RequireAny></a></code> + and + <code class="directive"><a href="#requirenone"><RequireNone></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"><Directory "/www/mydocs"> + <RequireAll> + <RequireAny> + Require user superadmin + <RequireAll> + Require group admins + Require ldap-group "cn=Administrators,o=Airius" + <RequireAny> + Require group sales + Require ldap-attribute dept="sales" + </RequireAny> + </RequireAll> + </RequireAny> + <RequireNone> + Require group temps + Require ldap-group "cn=Temporary Employees,o=Airius" + </RequireNone> + </RequireAll> +</Directory></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 +<Directory "/docroot"> + Require env let_me_in +</Directory></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"><RequireAny> + Require method GET POST OPTIONS + Require valid-user +</RequireAny></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 && %{TIME_HOUR} -le 17</pre> + + + <pre class="prettyprint lang-config"><RequireAll> + Require expr "!(%{QUERY_STRING} =~ /secret/)" + Require expr "%{REQUEST_URI} in { '/example.cgi', '/other.cgi' }" +</RequireAll></pre> + + + <pre class="prettyprint lang-config">Require expr "!(%{QUERY_STRING} =~ /secret/) && %{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"><AuthzProviderAlias ldap-group ldap-group-alias1 "cn=my-group,o=ctx"> + AuthLDAPBindDN "cn=youruser,o=ctx" + AuthLDAPBindPassword yourpassword + AuthLDAPURL "ldap://ldap.host/o=ctx" +</AuthzProviderAlias> + +<AuthzProviderAlias ldap-group ldap-group-alias2 "cn=my-other-group,o=dev"> + AuthLDAPBindDN "cn=yourotheruser,o=dev" + AuthLDAPBindPassword yourotherpassword + AuthLDAPURL "ldap://other.ldap.host/o=dev?cn" +</AuthzProviderAlias> + +Alias "/secure" "/webpages/secure" +<Directory "/webpages/secure"> + Require all granted + + AuthBasicProvider file + + AuthType Basic + AuthName LDAP_Protected_Place + + #implied OR operation + Require ldap-group-alias1 + Require ldap-group-alias2 +</Directory></pre> + + + +</div> </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_authz_core.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_authz_core.html.fr b/docs/manual/mod/mod_authz_core.html.fr index 3395e39234..0374e8c3cc 100644 --- a/docs/manual/mod/mod_authz_core.html.fr +++ b/docs/manual/mod/mod_authz_core.html.fr @@ -65,208 +65,6 @@ d'Apache HTTPD</td></tr></table> d'autorisation</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="logic" id="logic">Conteneurs d'autorisation</a></h2> - - <p>Les directives de conteneur d'autorisation <code class="directive"><a href="#requireall"><RequireAll></a></code>, - <code class="directive"><a href="#requireany"><RequireAny></a></code> et <code class="directive"><a href="#requirenone"><RequireNone></a></code> - peuvent tre combines 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 accder 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 accder la ressource, - l'utilisateur ne doit appartenir ni au groupe <code>temps</code>, ni - au groupe LDAP <code>Employs temporaires</code>.</p> - - <pre class="prettyprint lang-config"><Directory /www/mydocs> - <RequireAll> - <RequireAny> - Require user superadmin - <RequireAll> - Require group admins - Require ldap-group cn=Administrateurs,o=Airius - <RequireAny> - Require group ventes - Require ldap-attribute dept="ventes" - </RequireAny> - </RequireAll> - </RequireAny> - <RequireNone> - Require group temps - Require ldap-group cn=Employs temporaires,o=Airius - </RequireNone> - </RequireAll> -</Directory></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 gnriques 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 contrler l'accs 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 spcifi, la requte se voit - autoriser l'accs si la variable d'environnement - <var>env-variable</var> existe. Le serveur permet de dfinir - facilement des variables d'environnement en fonction des - caractristiques de la requte 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 contrler l'accs en fonction des - valeurs des en-ttes de la requte 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 -<Directory /docroot> - Require env let_me_in -</Directory></pre> - - - <p>Avec cet exemple, les navigateurs dont la chane user-agent - commence par <code>KnockKnock/2.0</code> se verront autoriser - l'accs, alors que tous les autres seront rejets.</p> - - <p>Lorsque le serveur cherche un chemin via une <a class="glossarylink" href="../glossary.html#subrequest" title="voir glossaire">sous-requte</a> interne (par exemple la - recherche d'un <code class="directive"><a href="../mod/mod_dir.html#directoryindex">DirectoryIndex</a></code>), ou lorsqu'il gnre un - listing du contenu d'un rpertoire via le module - <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code>, la sous-requte n'hrite pas des - variables d'environnement spcifiques la requte. 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 values - sparment dans la sous-requte.</p> - - - - <h3><a name="reqall" id="reqall">Require all</a></h3> - - <p>Le fournisseur <code>all</code> reproduit la fonctionnalit - prcdemment 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'accs toutes les requtes.</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 mthode - HTTP dans le processus d'autorisation. Les mthodes GET et HEAD sont - ici considres comme quivalentes. La mthode TRACE n'est pas - supporte 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 mthodes GET, HEAD, POST, et - OPTIONS sont autorises :</p> - - <pre class="prettyprint lang-config">Require method GET POST OPTIONS</pre> - - - <p>Dans l'exemple suivant, les mthodes GET, HEAD, POST, et OPTIONS - sont autorises sans authentification, alors que toutes les autres - mthodes ncessitent un utilisateur valide :</p> - - <pre class="prettyprint lang-config"><RequireAny> - Require method GET POST OPTIONS - Require valid-user -</RequireAny></pre> - - - - <h3><a name="reqexpr" id="reqexpr">Require expr</a></h3> - - <p>Le fournisseur <code>expr</code> permet d'accorder l'autorisation - d'accs en fonction d'expressions arbitraires.</p> - - <pre class="prettyprint lang-config">Require expr %{TIME_HOUR} -ge 9 && %{TIME_HOUR} -le 17</pre> - - - <pre class="prettyprint lang-config"><RequireAll> - Require expr "!(%{QUERY_STRING} =~ /secret/)" - Require expr "%{REQUEST_URI} in { '/example.cgi', '/other.cgi' }" -</RequireAll></pre> - - - <pre class="prettyprint lang-config">Require expr "!(%{QUERY_STRING} =~ /secret/) && %{REQUEST_URI} in { '/example.cgi', '/other.cgi' }"</pre> - - - <p>La syntaxe de l'expression est dcrite dans la documentation de <a href="../expr.html">ap_expr</a>.</p> - - <p>Normalement, l'expression est value avant l'authentification. - Cependant, si l'expression renvoie false et se rfre la variable - <code>%{REMOTE_USER}</code>, le processus d'authentification sera - engag et l'expression rvalue.</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">Cration des alias du fournisseur -d'autorisation</a></h2> - - <p>Il est possible de crer des fournisseurs d'autorisation tendus - dans le fichier de configuration et de leur assigner un nom d'alias. - On peut ensuite utiliser ces fournisseurs aliass dans une - directive <code class="directive"><a href="#require">Require</a></code> de - la mme manire qu'on le ferait pour des fournisseurs d'autorisation - de base. En plus de la possibilit de crer et d'aliaser un - fournisseur tendu, le mme fournisseur d'autorisation tendu peut - tre rfrenc par diverses localisations. - </p> - - <h3><a name="example" id="example">Exemple</a></h3> - <p>Dans l'exemple suivant, on cre deux alias de fournisseur - d'autorisation ldap diffrents bass sur le fournisseur - d'autorisation ldap-group. Il est ainsi possible pour un seul - rpertoire de vrifier l'appartenance un groupe dans plusieurs - serveurs ldap : - </p> - - <pre class="prettyprint lang-config"><AuthzProviderAlias ldap-group ldap-group-alias1 cn=my-group,o=ctx> - AuthLDAPBindDN cn=youruser,o=ctx - AuthLDAPBindPassword yourpassword - AuthLDAPURL ldap://ldap.host/o=ctx -</AuthzProviderAlias> - -<AuthzProviderAlias ldap-group ldap-group-alias2 cn=my-other-group,o=dev> - AuthLDAPBindDN cn=yourotheruser,o=dev - AuthLDAPBindPassword yourotherpassword - AuthLDAPURL ldap://other.ldap.host/o=dev?cn -</AuthzProviderAlias> - -Alias /secure /webpages/secure -<Directory /webpages/secure> - Require all granted - - AuthBasicProvider file - - AuthType Basic - AuthName LDAP_Protected_Place - - #Opration logique implicite : OU inclusif - Require ldap-group-alias1 - Require ldap-group-alias2 -</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="authmerging" id="authmerging">Directive</a> <a name="AuthMerging" id="AuthMerging">AuthMerging</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dfinit la manire dont chaque logique d'autorisation des @@ -641,6 +439,208 @@ pas.</td></tr> contrle d'accs</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"><RequireAll></a></code>, + <code class="directive"><a href="#requireany"><RequireAny></a></code> et <code class="directive"><a href="#requirenone"><RequireNone></a></code> + peuvent tre combines 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 accder 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 accder la ressource, + l'utilisateur ne doit appartenir ni au groupe <code>temps</code>, ni + au groupe LDAP <code>Employs temporaires</code>.</p> + + <pre class="prettyprint lang-config"><Directory /www/mydocs> + <RequireAll> + <RequireAny> + Require user superadmin + <RequireAll> + Require group admins + Require ldap-group cn=Administrateurs,o=Airius + <RequireAny> + Require group ventes + Require ldap-attribute dept="ventes" + </RequireAny> + </RequireAll> + </RequireAny> + <RequireNone> + Require group temps + Require ldap-group cn=Employs temporaires,o=Airius + </RequireNone> + </RequireAll> +</Directory></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 gnriques 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 contrler l'accs 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 spcifi, la requte se voit + autoriser l'accs si la variable d'environnement + <var>env-variable</var> existe. Le serveur permet de dfinir + facilement des variables d'environnement en fonction des + caractristiques de la requte 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 contrler l'accs en fonction des + valeurs des en-ttes de la requte 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 +<Directory /docroot> + Require env let_me_in +</Directory></pre> + + + <p>Avec cet exemple, les navigateurs dont la chane user-agent + commence par <code>KnockKnock/2.0</code> se verront autoriser + l'accs, alors que tous les autres seront rejets.</p> + + <p>Lorsque le serveur cherche un chemin via une <a class="glossarylink" href="../glossary.html#subrequest" title="voir glossaire">sous-requte</a> interne (par exemple la + recherche d'un <code class="directive"><a href="../mod/mod_dir.html#directoryindex">DirectoryIndex</a></code>), ou lorsqu'il gnre un + listing du contenu d'un rpertoire via le module + <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code>, la sous-requte n'hrite pas des + variables d'environnement spcifiques la requte. 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 values + sparment dans la sous-requte.</p> + + + + <h3><a name="reqall" id="reqall">Require all</a></h3> + + <p>Le fournisseur <code>all</code> reproduit la fonctionnalit + prcdemment 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'accs toutes les requtes.</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 mthode + HTTP dans le processus d'autorisation. Les mthodes GET et HEAD sont + ici considres comme quivalentes. La mthode TRACE n'est pas + supporte 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 mthodes GET, HEAD, POST, et + OPTIONS sont autorises :</p> + + <pre class="prettyprint lang-config">Require method GET POST OPTIONS</pre> + + + <p>Dans l'exemple suivant, les mthodes GET, HEAD, POST, et OPTIONS + sont autorises sans authentification, alors que toutes les autres + mthodes ncessitent un utilisateur valide :</p> + + <pre class="prettyprint lang-config"><RequireAny> + Require method GET POST OPTIONS + Require valid-user +</RequireAny></pre> + + + + <h3><a name="reqexpr" id="reqexpr">Require expr</a></h3> + + <p>Le fournisseur <code>expr</code> permet d'accorder l'autorisation + d'accs en fonction d'expressions arbitraires.</p> + + <pre class="prettyprint lang-config">Require expr %{TIME_HOUR} -ge 9 && %{TIME_HOUR} -le 17</pre> + + + <pre class="prettyprint lang-config"><RequireAll> + Require expr "!(%{QUERY_STRING} =~ /secret/)" + Require expr "%{REQUEST_URI} in { '/example.cgi', '/other.cgi' }" +</RequireAll></pre> + + + <pre class="prettyprint lang-config">Require expr "!(%{QUERY_STRING} =~ /secret/) && %{REQUEST_URI} in { '/example.cgi', '/other.cgi' }"</pre> + + + <p>La syntaxe de l'expression est dcrite dans la documentation de <a href="../expr.html">ap_expr</a>.</p> + + <p>Normalement, l'expression est value avant l'authentification. + Cependant, si l'expression renvoie false et se rfre la variable + <code>%{REMOTE_USER}</code>, le processus d'authentification sera + engag et l'expression rvalue.</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">Cration des alias du fournisseur +d'autorisation</a></h2> + + <p>Il est possible de crer des fournisseurs d'autorisation tendus + dans le fichier de configuration et de leur assigner un nom d'alias. + On peut ensuite utiliser ces fournisseurs aliass dans une + directive <code class="directive"><a href="#require">Require</a></code> de + la mme manire qu'on le ferait pour des fournisseurs d'autorisation + de base. En plus de la possibilit de crer et d'aliaser un + fournisseur tendu, le mme fournisseur d'autorisation tendu peut + tre rfrenc par diverses localisations. + </p> + + <h3><a name="example" id="example">Exemple</a></h3> + <p>Dans l'exemple suivant, on cre deux alias de fournisseur + d'autorisation ldap diffrents bass sur le fournisseur + d'autorisation ldap-group. Il est ainsi possible pour un seul + rpertoire de vrifier l'appartenance un groupe dans plusieurs + serveurs ldap : + </p> + + <pre class="prettyprint lang-config"><AuthzProviderAlias ldap-group ldap-group-alias1 cn=my-group,o=ctx> + AuthLDAPBindDN cn=youruser,o=ctx + AuthLDAPBindPassword yourpassword + AuthLDAPURL ldap://ldap.host/o=ctx +</AuthzProviderAlias> + +<AuthzProviderAlias ldap-group ldap-group-alias2 cn=my-other-group,o=dev> + AuthLDAPBindDN cn=yourotheruser,o=dev + AuthLDAPBindPassword yourotherpassword + AuthLDAPURL ldap://other.ldap.host/o=dev?cn +</AuthzProviderAlias> + +Alias /secure /webpages/secure +<Directory /webpages/secure> + Require all granted + + AuthBasicProvider file + + AuthType Basic + AuthName LDAP_Protected_Place + + #Opration logique implicite : OU inclusif + Require ldap-group-alias1 + Require ldap-group-alias2 +</Directory></pre> + + + +</div> </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_authz_core.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_authz_dbd.html.en b/docs/manual/mod/mod_authz_dbd.html.en index 1bf8e09f74..3b1400128b 100644 --- a/docs/manual/mod/mod_authz_dbd.html.en +++ b/docs/manual/mod/mod_authz_dbd.html.en @@ -71,6 +71,90 @@ <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> @@ -210,90 +294,6 @@ 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"> en </a> | diff --git a/docs/manual/mod/mod_authz_dbd.html.fr b/docs/manual/mod/mod_authz_dbd.html.fr index 6d5b95db5d..2f306d22af 100644 --- a/docs/manual/mod/mod_authz_dbd.html.fr +++ b/docs/manual/mod/mod_authz_dbd.html.fr @@ -73,6 +73,99 @@ d'Apache</td></tr></table> <li><code class="directive"><a href="../mod/mod_dbd.html#dbdparams">DBDParams</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="authzdbdlogintoreferer" id="authzdbdlogintoreferer">Directive</a> <a name="AuthzDBDLoginToReferer" id="AuthzDBDLoginToReferer">AuthzDBDLoginToReferer</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dfinit si le client doit tre redirig vers la page +d'origine en cas de connexion ou de dconnexion russie si une en-tte +de requte <code>Referer</code> est prsente</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">Dfaut:</a></th><td><code>AuthzDBDLoginToReferer Off</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire</td></tr> +<tr><th><a href="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>Utilise 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-tte + de requte HTTP <code>Referer</code>, s'il est prsent). En + l'absence d'en-tte <code>Referer</code>, la dfinition + <code>AuthzDBDLoginToReferer On</code> sera ignore.</p> + +</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>Dfinit la requte SQL pour l'opration +requise</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthzDBDQuery <var>requte</var></code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire</td></tr> +<tr><th><a href="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 + spcifier une requte SQL excuter. Le but de cette requte dpend + 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 spcifie + une requte 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 premire colonne de chaque enregistrement renvoy par la requte + doit contenir une chane de caractres correspondant un nom de + groupe. La requte peut renvoyer zro, 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'accs, + mais au contraire excutera une requte SQL permettant d'enregistrer + la connexion ou la dconnexion de l'utilisateur. Ce dernier doit + tre dj 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 + paramtre sous la forme d'une simple chane lorsque la requte SQL + sera excute. Il y sera fait rfrence dans la requte en utilisant + le spcificateur 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>Dfinit une requte pour rechercher une page vers laquelle +rediriger l'utilisateur aprs une connexion russie</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthzDBDRedirectQuery <var>requte</var></code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire</td></tr> +<tr><th><a href="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>Spcifie une requte SQL optionnelle utiliser aprs une + connexion (ou une dconnexion) russie pour rediriger l'utilisateur + vers une URL, qui peut tre spcifique l'utilisateur. + L'identifiant utilisateur sera transmis comme paramtre sous la + forme d'une simple chane lorsque la requte SQL sera excute. Il y + sera fait rfrence dans la requte en utilisant le spcificateur de + format <code>%s</code>.</p> + <pre class="prettyprint lang-config">AuthzDBDRedirectQuery "SELECT userpage FROM userpages WHERE user = %s"</pre> + + <p>La premire colonne du premier enregistrement renvoy par la + requte doit contenir une chane de caractres correspondant une + URL vers laquelle rediriger le client. Les enregistrements suivants + sont ignors. 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 dfinies.</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> @@ -223,99 +316,6 @@ DBDExptime 300 <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> pour plus d'informations propos de la scurit 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>Dfinit si le client doit tre redirig vers la page -d'origine en cas de connexion ou de dconnexion russie si une en-tte -de requte <code>Referer</code> est prsente</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">Dfaut:</a></th><td><code>AuthzDBDLoginToReferer Off</code></td></tr> -<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire</td></tr> -<tr><th><a href="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>Utilise 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-tte - de requte HTTP <code>Referer</code>, s'il est prsent). En - l'absence d'en-tte <code>Referer</code>, la dfinition - <code>AuthzDBDLoginToReferer On</code> sera ignore.</p> - -</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>Dfinit la requte SQL pour l'opration -requise</td></tr> -<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthzDBDQuery <var>requte</var></code></td></tr> -<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire</td></tr> -<tr><th><a href="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 - spcifier une requte SQL excuter. Le but de cette requte dpend - 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 spcifie - une requte 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 premire colonne de chaque enregistrement renvoy par la requte - doit contenir une chane de caractres correspondant un nom de - groupe. La requte peut renvoyer zro, 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'accs, - mais au contraire excutera une requte SQL permettant d'enregistrer - la connexion ou la dconnexion de l'utilisateur. Ce dernier doit - tre dj 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 - paramtre sous la forme d'une simple chane lorsque la requte SQL - sera excute. Il y sera fait rfrence dans la requte en utilisant - le spcificateur 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>Dfinit une requte pour rechercher une page vers laquelle -rediriger l'utilisateur aprs une connexion russie</td></tr> -<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthzDBDRedirectQuery <var>requte</var></code></td></tr> -<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire</td></tr> -<tr><th><a href="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>Spcifie une requte SQL optionnelle utiliser aprs une - connexion (ou une dconnexion) russie pour rediriger l'utilisateur - vers une URL, qui peut tre spcifique l'utilisateur. - L'identifiant utilisateur sera transmis comme paramtre sous la - forme d'une simple chane lorsque la requte SQL sera excute. Il y - sera fait rfrence dans la requte en utilisant le spcificateur de - format <code>%s</code>.</p> - <pre class="prettyprint lang-config">AuthzDBDRedirectQuery "SELECT userpage FROM userpages WHERE user = %s"</pre> - - <p>La premire colonne du premier enregistrement renvoy par la - requte doit contenir une chane de caractres correspondant une - URL vers laquelle rediriger le client. Les enregistrements suivants - sont ignors. 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 dfinies.</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"> en </a> | diff --git a/docs/manual/mod/mod_authz_dbm.html.en b/docs/manual/mod/mod_authz_dbm.html.en index a24da7b959..cb1036d0f5 100644 --- a/docs/manual/mod/mod_authz_dbm.html.en +++ b/docs/manual/mod/mod_authz_dbm.html.en @@ -53,55 +53,6 @@ <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"><Directory "/foo/bar"> - AuthType Basic - AuthName "Secure Area" - AuthBasicProvider dbm - AuthDBMUserFile "site/data/users" - AuthDBMGroupFile "site/data/users" - Require dbm-group admin -</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="AuthDBMGroupFile" id="AuthDBMGroupFile">AuthDBMGroupFile</a> <a name="authdbmgroupfile" id="authdbmgroupfile">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets the name of the database file containing the list @@ -180,6 +131,55 @@ store list of user groups</td></tr> 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"><Directory "/foo/bar"> + AuthType Basic + AuthName "Secure Area" + AuthBasicProvider dbm + AuthDBMUserFile "site/data/users" + AuthDBMGroupFile "site/data/users" + Require dbm-group admin +</Directory></pre> + +</div> </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_authz_dbm.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_authz_dbm.html.fr b/docs/manual/mod/mod_authz_dbm.html.fr index 3f22f98444..001b01cdb6 100644 --- a/docs/manual/mod/mod_authz_dbm.html.fr +++ b/docs/manual/mod/mod_authz_dbm.html.fr @@ -56,56 +56,6 @@ <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 accder 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 spcifier quel groupe un utilisateur - doit appartenir pour obtenir l'autorisation d'accs.</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 dfinie, l'utilisateur doit - appartenir au groupe du fichier pour pouvoir y accder.</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"><Directory "/foo/bar"> - AuthType Basic - AuthName "Secure Area" - AuthBasicProvider dbm - AuthDBMUserFile site/data/users - AuthDBMGroupFile site/data/users - Require dbm-group admin -</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="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>Dfinit le nom du fichier de base de donnes qui liste @@ -188,6 +138,56 @@ la liste des groupes d'utilisateurs</td></tr> pour utiliser le mme type de base de donnes.</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 accder 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 spcifier quel groupe un utilisateur + doit appartenir pour obtenir l'autorisation d'accs.</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 dfinie, l'utilisateur doit + appartenir au groupe du fichier pour pouvoir y accder.</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"><Directory "/foo/bar"> + AuthType Basic + AuthName "Secure Area" + AuthBasicProvider dbm + AuthDBMUserFile site/data/users + AuthDBMGroupFile site/data/users + Require dbm-group admin +</Directory></pre> + +</div> </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_authz_dbm.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_authz_dbm.html.ko.euc-kr b/docs/manual/mod/mod_authz_dbm.html.ko.euc-kr index 6cf0d2201b..43511705c6 100644 --- a/docs/manual/mod/mod_authz_dbm.html.ko.euc-kr +++ b/docs/manual/mod/mod_authz_dbm.html.ko.euc-kr @@ -51,7 +51,6 @@ <li><code class="directive"><a href="../mod/core.html#require">Require</a></code></li> <li><code class="directive"><a href="../mod/core.html#satisfy">Satisfy</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AuthDBMGroupFile" id="AuthDBMGroupFile">AuthDBMGroupFile</a> <a name="authdbmgroupfile" id="authdbmgroupfile">þ</a></h2> <table class="directive"> @@ -122,6 +121,7 @@ ϵ ؾ Ѵ.</p> </div> + </div> <div class="bottomlang"> <p><span> : </span><a href="../en/mod/mod_authz_dbm.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_authz_groupfile.html.en b/docs/manual/mod/mod_authz_groupfile.html.en index 167ed9ac1d..7adb8a3335 100644 --- a/docs/manual/mod/mod_authz_groupfile.html.en +++ b/docs/manual/mod/mod_authz_groupfile.html.en @@ -52,40 +52,6 @@ <li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="requiredirectives" id="requiredirectives">The Require Directives</a></h2> - - <p>Apache's <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> - directives are used during the authorization phase to ensure that - a user is allowed to access a resource. mod_authz_groupfile extends the - authorization types with <code>group</code> and <code>group-file</code>. - </p> - - <p>Since v2.4.8, <a href="../expr.html">expressions</a> are supported - within the groupfile require directives.</p> - -<h3><a name="reqgroup" id="reqgroup">Require group</a></h3> - - <p>This directive specifies group membership that is required for the - user to gain access.</p> - - <pre class="prettyprint lang-config">Require group admin</pre> - - - - -<h3><a name="reqfilegroup" id="reqfilegroup">Require file-group</a></h3> - - <p>When this directive is specified, the user must be a member of the group - assigned to the file being accessed.</p> - - <pre class="prettyprint lang-config">Require file-group</pre> - - - - -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AuthGroupFile" id="AuthGroupFile">AuthGroupFile</a> <a name="authgroupfile" id="authgroupfile">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets the name of a text file containing the list @@ -119,6 +85,40 @@ of user groups for authorization</td></tr> </div> </div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="requiredirectives" id="requiredirectives">The Require Directives</a></h2> + + <p>Apache's <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> + directives are used during the authorization phase to ensure that + a user is allowed to access a resource. mod_authz_groupfile extends the + authorization types with <code>group</code> and <code>group-file</code>. + </p> + + <p>Since v2.4.8, <a href="../expr.html">expressions</a> are supported + within the groupfile require directives.</p> + +<h3><a name="reqgroup" id="reqgroup">Require group</a></h3> + + <p>This directive specifies group membership that is required for the + user to gain access.</p> + + <pre class="prettyprint lang-config">Require group admin</pre> + + + + +<h3><a name="reqfilegroup" id="reqfilegroup">Require file-group</a></h3> + + <p>When this directive is specified, the user must be a member of the group + assigned to the file being accessed.</p> + + <pre class="prettyprint lang-config">Require file-group</pre> + + + + +</div> </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_authz_groupfile.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_authz_groupfile.html.fr b/docs/manual/mod/mod_authz_groupfile.html.fr index b9318a3435..f05ebbb4ba 100644 --- a/docs/manual/mod/mod_authz_groupfile.html.fr +++ b/docs/manual/mod/mod_authz_groupfile.html.fr @@ -53,40 +53,6 @@ fonction de leur appartenance un groupe spcifi. Le module <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 accder 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 spcifier quel groupe un utilisateur - doit appartenir pour obtenir l'autorisation d'accs.</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 dfinie, l'utilisateur doit - appartenir au groupe du fichier pour pouvoir y accder.</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>Dfinit le nom d'un fichier texte contenant la liste des @@ -125,6 +91,40 @@ clients pourraient le tlcharger.</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 accder 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 spcifier quel groupe un utilisateur + doit appartenir pour obtenir l'autorisation d'accs.</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 dfinie, l'utilisateur doit + appartenir au groupe du fichier pour pouvoir y accder.</p> + + <pre class="prettyprint lang-config">Require file-group</pre> + + + + +</div> </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_authz_groupfile.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_authz_groupfile.html.ja.utf8 b/docs/manual/mod/mod_authz_groupfile.html.ja.utf8 index a58b83c2f9..39d9989a66 100644 --- a/docs/manual/mod/mod_authz_groupfile.html.ja.utf8 +++ b/docs/manual/mod/mod_authz_groupfile.html.ja.utf8 @@ -53,7 +53,6 @@ <ul class="seealso"> <li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AuthGroupFile" id="AuthGroupFile">AuthGroupFile</a> <a name="authgroupfile" id="authgroupfile">ディレクティブ</a></h2> <table class="directive"> @@ -95,6 +94,7 @@ </div> </div> + </div> <div class="bottomlang"> <p><span>翻訳済み言語: </span><a href="../en/mod/mod_authz_groupfile.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_authz_groupfile.html.ko.euc-kr b/docs/manual/mod/mod_authz_groupfile.html.ko.euc-kr index eeb65c8fc5..65d7dfbd8e 100644 --- a/docs/manual/mod/mod_authz_groupfile.html.ko.euc-kr +++ b/docs/manual/mod/mod_authz_groupfile.html.ko.euc-kr @@ -51,7 +51,6 @@ <li><code class="directive"><a href="../mod/core.html#require">Require</a></code></li> <li><code class="directive"><a href="../mod/core.html#satisfy">Satisfy</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AuthGroupFile" id="AuthGroupFile">AuthGroupFile</a> <a name="authgroupfile" id="authgroupfile">þ</a></h2> <table class="directive"> @@ -86,6 +85,7 @@ </div> </div> + </div> <div class="bottomlang"> <p><span> : </span><a href="../en/mod/mod_authz_groupfile.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_autoindex.html.en b/docs/manual/mod/mod_autoindex.html.en index ae57b39ca7..cffac6be58 100644 --- a/docs/manual/mod/mod_autoindex.html.en +++ b/docs/manual/mod/mod_autoindex.html.en @@ -104,108 +104,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#query">Autoindex Request Query Arguments</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="query" id="query">Autoindex Request Query Arguments</a></h2> - - - <p>Various query string arguments are available to give the client - some control over the ordering of the directory listing, as well as - what files are listed. If you do not wish to give the client this - control, the <code><a href="#indexoptions.ignoreclient">IndexOptions - IgnoreClient</a></code> option disables that functionality.</p> - - <p>The column sorting headers themselves are self-referencing - hyperlinks that add the sort query options shown below. Any - option below may be added to any request for the directory - resource.</p> - - <ul> - <li><code>C=N</code> sorts the directory by file name</li> - - <li><code>C=M</code> sorts the directory by last-modified - date, then file name</li> - - <li><code>C=S</code> sorts the directory by size, then file - name</li> - - <li class="separate"><code>C=D</code> sorts the directory by description, then - file name</li> - - <li><code>O=A</code> sorts the listing in Ascending - Order</li> - - <li class="separate"><code>O=D</code> sorts the listing in Descending - Order</li> - - <li><code>F=0</code> formats the listing as a simple list - (not FancyIndexed)</li> - - <li><code>F=1</code> formats the listing as a FancyIndexed - list</li> - - <li class="separate"><code>F=2</code> formats the listing as an - HTMLTable FancyIndexed list</li> - - <li><code>V=0</code> disables version sorting</li> - - <li class="separate"><code>V=1</code> enables version sorting</li> - - <li><code>P=<var>pattern</var></code> lists only files matching - the given <var>pattern</var></li> - </ul> - - <p>Note that the 'P'attern query argument is tested - <em>after</em> the usual <code class="directive"><a href="#indexignore">IndexIgnore</a></code> directives are processed, - and all file names are still subjected to the same criteria as - any other autoindex listing. The Query Arguments parser in - <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> will stop abruptly when an unrecognized - option is encountered. The Query Arguments must be well formed, - according to the table above.</p> - - <p>The simple example below, which can be clipped and saved in - a header.html file, illustrates these query options. Note that - the unknown "X" argument, for the submit button, is listed last - to assure the arguments are all parsed before mod_autoindex - encounters the X=Go input.</p> - - <div class="example"><p><code> - <form action="" method="get"><br /> - <span class="indent"> - Show me a <select name="F"><br /> - <span class="indent"> - <option value="0"> Plain list</option><br /> - <option value="1" selected="selected"> Fancy list</option><br /> - <option value="2"> Table list</option><br /> - </span> - </select><br /> - Sorted by <select name="C"><br /> - <span class="indent"> - <option value="N" selected="selected"> Name</option><br /> - <option value="M"> Date Modified</option><br /> - <option value="S"> Size</option><br /> - <option value="D"> Description</option><br /> - </span> - </select><br /> - <select name="O"><br /> - <span class="indent"> - <option value="A" selected="selected"> Ascending</option><br /> - <option value="D"> Descending</option><br /> - </span> - </select><br /> - <select name="V"><br /> - <span class="indent"> - <option value="0" selected="selected"> in Normal order</option><br /> - <option value="1"> in Version order</option><br /> - </span> - </select><br /> - Matching <input type="text" name="P" value="*" /><br /> - <input type="submit" name="X" value="Go" /><br /> - </span> - </form> - </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 @@ -1013,6 +911,108 @@ ReadmeName /include/FOOTER.html</pre> 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> + <form action="" method="get"><br /> + <span class="indent"> + Show me a <select name="F"><br /> + <span class="indent"> + <option value="0"> Plain list</option><br /> + <option value="1" selected="selected"> Fancy list</option><br /> + <option value="2"> Table list</option><br /> + </span> + </select><br /> + Sorted by <select name="C"><br /> + <span class="indent"> + <option value="N" selected="selected"> Name</option><br /> + <option value="M"> Date Modified</option><br /> + <option value="S"> Size</option><br /> + <option value="D"> Description</option><br /> + </span> + </select><br /> + <select name="O"><br /> + <span class="indent"> + <option value="A" selected="selected"> Ascending</option><br /> + <option value="D"> Descending</option><br /> + </span> + </select><br /> + <select name="V"><br /> + <span class="indent"> + <option value="0" selected="selected"> in Normal order</option><br /> + <option value="1"> in Version order</option><br /> + </span> + </select><br /> + Matching <input type="text" name="P" value="*" /><br /> + <input type="submit" name="X" value="Go" /><br /> + </span> + </form> + </code></p></div> + +</div> </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_autoindex.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_autoindex.html.fr b/docs/manual/mod/mod_autoindex.html.fr index eb98fbdec7..03008e29d0 100644 --- a/docs/manual/mod/mod_autoindex.html.fr +++ b/docs/manual/mod/mod_autoindex.html.fr @@ -101,115 +101,6 @@ shell Win32 <code>dir</code></td></tr> <li><img alt="" src="../images/down.gif" /> <a href="#query">Arguments de la requte d'autoindexation</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="query" id="query">Arguments de la requte d'autoindexation</a></h2> - - - <p>La chane de paramtres de la requte peut contenir de nombreux - arguments permettant dans une certaine mesure au client de contrler - l'ordre de l'index du rpertoire, ainsi que la liste des fichiers - afficher. Si vous souhaitez dsactiver cette fonctionnalit, - utilisez l'option <code><a href="#indexoptions.ignoreclient">IndexOptions - IgnoreClient</a></code>.</p> - - <p>Les en-ttes de tri des colonnes eux-mmes sont des hyper-liens - auto-rfrant qui ajoutent les options de tri la requte numres - ci-dessous qui peuvent tre ajoutes toute requte concernant la - ressource rpertoire.</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 - dernire 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 dcroissant</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-ttes 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-ttes de colonnes contenant des liens - hyper-textes (FancyIndexed)</li> - - <li><code>V=0</code> dsactive 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>modle</var></code> n'affiche que les fichiers - correspondant au <var>modle</var> spcifi</li> - </ul> - - <p>Notez que l'argument 'P' (pour Pattern) n'est test - qu'<em>aprs</em> que les directives habituelles <code class="directive"><a href="#indexignore">IndexIgnore</a></code> ont t traites, - et que tous les noms de fichiers sont encore assujettis aux mmes - critres que pour tout autre listing auto-index. L'interprteur - d'arguments de requte de <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> s'arrte - immdiatement s'il rencontre une option non reconnue. Les arguments - de requte doivent tre bien forms, selon la table ci-dessus.</p> - - <p>Les options de requtes sont illustres 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 - interprts avant que mod_autoindex ne rencontre l'entre X=Go.</p> - - <div class="example"><p><code> - <form action="" method="get"><br /> - <span class="indent"> - Montre moi une <select name="F"><br /> - <span class="indent"> - <option value="0"> liste simple</option><br /> - <option value="1" selected="selected"> liste avec - en-ttes</option><br /> - <option value="2"> liste avec en-tte sous forme de - table</option><br /> - </span> - </select><br /> - trie par <select name="C"><br /> - <span class="indent"> - <option value="N" selected="selected"> nom</option><br /> - <option value="M"> date de modification</option><br /> - <option value="S"> taille</option><br /> - <option value="D"> description</option><br /> - </span> - </select><br /> - <select name="O"><br /> - <span class="indent"> - <option value="A" selected="selected"> croissant</option><br /> - <option value="D"> dcroissant</option><br /> - </span> - </select><br /> - <select name="V"><br /> - <span class="indent"> - <option value="0" selected="selected"> dans l'ordre - normal</option><br /> - <option value="1"> en fonction de la version</option><br /> - </span> - </select><br /> - correspondant <input type="text" name="P" value="*" /><br /> - <input type="submit" name="X" value="Go" /><br /> - </span> - </form> - </code></p></div> - -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="addalt" id="addalt">Directive</a> <a name="AddAlt" id="AddAlt">AddAlt</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Texte optionnel afficher la place d'un icne pour un @@ -1098,6 +989,115 @@ ReadmeName /include/FOOTER.html</pre> dtails.</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 requte d'autoindexation</a></h2> + + + <p>La chane de paramtres de la requte peut contenir de nombreux + arguments permettant dans une certaine mesure au client de contrler + l'ordre de l'index du rpertoire, ainsi que la liste des fichiers + afficher. Si vous souhaitez dsactiver cette fonctionnalit, + utilisez l'option <code><a href="#indexoptions.ignoreclient">IndexOptions + IgnoreClient</a></code>.</p> + + <p>Les en-ttes de tri des colonnes eux-mmes sont des hyper-liens + auto-rfrant qui ajoutent les options de tri la requte numres + ci-dessous qui peuvent tre ajoutes toute requte concernant la + ressource rpertoire.</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 + dernire 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 dcroissant</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-ttes 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-ttes de colonnes contenant des liens + hyper-textes (FancyIndexed)</li> + + <li><code>V=0</code> dsactive 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>modle</var></code> n'affiche que les fichiers + correspondant au <var>modle</var> spcifi</li> + </ul> + + <p>Notez que l'argument 'P' (pour Pattern) n'est test + qu'<em>aprs</em> que les directives habituelles <code class="directive"><a href="#indexignore">IndexIgnore</a></code> ont t traites, + et que tous les noms de fichiers sont encore assujettis aux mmes + critres que pour tout autre listing auto-index. L'interprteur + d'arguments de requte de <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> s'arrte + immdiatement s'il rencontre une option non reconnue. Les arguments + de requte doivent tre bien forms, selon la table ci-dessus.</p> + + <p>Les options de requtes sont illustres 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 + interprts avant que mod_autoindex ne rencontre l'entre X=Go.</p> + + <div class="example"><p><code> + <form action="" method="get"><br /> + <span class="indent"> + Montre moi une <select name="F"><br /> + <span class="indent"> + <option value="0"> liste simple</option><br /> + <option value="1" selected="selected"> liste avec + en-ttes</option><br /> + <option value="2"> liste avec en-tte sous forme de + table</option><br /> + </span> + </select><br /> + trie par <select name="C"><br /> + <span class="indent"> + <option value="N" selected="selected"> nom</option><br /> + <option value="M"> date de modification</option><br /> + <option value="S"> taille</option><br /> + <option value="D"> description</option><br /> + </span> + </select><br /> + <select name="O"><br /> + <span class="indent"> + <option value="A" selected="selected"> croissant</option><br /> + <option value="D"> dcroissant</option><br /> + </span> + </select><br /> + <select name="V"><br /> + <span class="indent"> + <option value="0" selected="selected"> dans l'ordre + normal</option><br /> + <option value="1"> en fonction de la version</option><br /> + </span> + </select><br /> + correspondant <input type="text" name="P" value="*" /><br /> + <input type="submit" name="X" value="Go" /><br /> + </span> + </form> + </code></p></div> + +</div> </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_autoindex.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_autoindex.html.ja.utf8 b/docs/manual/mod/mod_autoindex.html.ja.utf8 index 562e97755d..b5d266829c 100644 --- a/docs/manual/mod/mod_autoindex.html.ja.utf8 +++ b/docs/manual/mod/mod_autoindex.html.ja.utf8 @@ -113,116 +113,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#query">Autoindex リクエストクエリー引数</a></li> </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="query" id="query">Autoindex リクエストクエリー引数</a></h2> - - - <p>Apache 2.0.23 で、 - コラムソートのためにクエリー引数を再編成して、 - 新しいクエリーオプションのグループを導入しました。 - 出力に対するクライアントのすべての制御を効率的に抹消 - できるように、 - <code><a href="#indexoptions.ignoreclient">IndexOptions - IgnoreClient</a></code> が導入されました。</p> - - <p>コラムソートのヘッダそれ自体が、 - 下記のソートクエリーオプションを付加する - 自分自身を参照するリンクです。 - 下記のオプションのどれでも、 - ディレクトリリソースへのリクエストに加えることができます。</p> - - <ul> - <li><code>C=N</code> は、ファイル名でソートします。</li> - - <li><code>C=M</code> は、更新日時、 - ディレクトリ、ファイル名の順でソートします。</li> - - <li><code>C=S</code> は、サイズ、 - ディレクトリ、ファイル名の順でソートします。</li> - - <li class="separate"><code>C=D</code> は、説明、 - ディレクトリ、ファイル名の順でソートします。</li> - - <li><code>O=A</code> は、昇順で表をソートします。</li> - - <li class="separate"><code>O=D</code> は、降順で表をソートします。</li> - - <li><code>F=0</code> は、単純な表の書式にします。 - (FancyIndex ではありません。)</li> - - <li><code>F=1</code> は、FancyIndex - 表示の表の書式にします。</li> - - <li><code>F=2</code> は、表を HTML - のテーブルを使った FancyIndex の書式にします。</li> - - <li><code>V=0</code> - は、バージョンによるソートを無効にします。</li> - - <li class="separate"><code>V=1</code> - は、バージョンによるソートを有効にします。</li> - - <li><code>P=<var>pattern</var></code> - は、与えられた <var>pattern</var> - に適合したファイルのみを表示します。</li> - </ul> - - <p>"P (パターンの P)" クエリー引数は、 - 通常の <code class="directive"><a href="#indexignore">IndexIgnore</a></code> - ディレクティブが処理された<em>後</em>に検査され、 - ファイル名全てが、他の autoindex - リスト処理と同様の判定基準下に置かれ続ける - ことに注意してください。 - <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> のクエリー引数パーサ (解析) は、 - 認識不能なオプションにぶつかると即座に停止します。 - クエリー引数は上の表に従って - 正しい形式になっていなければなりません。</p> - - <p>下の単純な例は、これらのクエリーオプションを - 表します。これをそのまま切り取って HEADER.html - ファイルに保存することもできます。 - mod_autoindex が X=Go 入力にぶつかる前に - 引数が全て解釈されるように、 - 未知の引数 "X" はリストの最後に置かれています。</p> - - <div class="example"><p><code> - <form action="" method="get"><br /> - <span class="indent"> - Show me a <select name="F"><br /> - <span class="indent"> - <option value="0"> Plain list</option><br /> - <option value="1" selected="selected"> Fancy list</option><br /> - <option value="2"> Table list</option><br /> - </span> - </select><br /> - Sorted by <select name="C"><br /> - <span class="indent"> - <option value="N" selected="selected"> Name</option><br /> - <option value="M"> Date Modified</option><br /> - <option value="S"> Size</option><br /> - <option value="D"> Description</option><br /> - </span> - </select><br /> - <select name="O"><br /> - <span class="indent"> - <option value="A" selected="selected"> Ascending</option><br /> - <option value="D"> Descending</option><br /> - </span> - </select><br /> - <select name="V"><br /> - <span class="indent"> - <option value="0" selected="selected"> in Normal order</option><br /> - <option value="1"> in Version order</option><br /> - </span> - </select><br /> - Matching <input type="text" name="P" value="*" /><br /> - <input type="submit" name="X" value="Go" /><br /> - </span> - </form> - </code></p></div> - -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AddAlt" id="AddAlt">AddAlt</a> <a name="addalt" id="addalt">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>アイコンの代わりに @@ -1043,6 +933,116 @@ Name|Date|Size|Description</code></td></tr> もご覧下さい。</p> </div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="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> + <form action="" method="get"><br /> + <span class="indent"> + Show me a <select name="F"><br /> + <span class="indent"> + <option value="0"> Plain list</option><br /> + <option value="1" selected="selected"> Fancy list</option><br /> + <option value="2"> Table list</option><br /> + </span> + </select><br /> + Sorted by <select name="C"><br /> + <span class="indent"> + <option value="N" selected="selected"> Name</option><br /> + <option value="M"> Date Modified</option><br /> + <option value="S"> Size</option><br /> + <option value="D"> Description</option><br /> + </span> + </select><br /> + <select name="O"><br /> + <span class="indent"> + <option value="A" selected="selected"> Ascending</option><br /> + <option value="D"> Descending</option><br /> + </span> + </select><br /> + <select name="V"><br /> + <span class="indent"> + <option value="0" selected="selected"> in Normal order</option><br /> + <option value="1"> in Version order</option><br /> + </span> + </select><br /> + Matching <input type="text" name="P" value="*" /><br /> + <input type="submit" name="X" value="Go" /><br /> + </span> + </form> + </code></p></div> + +</div> </div> <div class="bottomlang"> <p><span>翻訳済み言語: </span><a href="../en/mod/mod_autoindex.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_autoindex.html.ko.euc-kr b/docs/manual/mod/mod_autoindex.html.ko.euc-kr index 98d9e1f1e5..052bec6450 100644 --- a/docs/manual/mod/mod_autoindex.html.ko.euc-kr +++ b/docs/manual/mod/mod_autoindex.html.ko.euc-kr @@ -97,97 +97,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#query">Autoindex û ƱԸƮ</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="query" id="query">Autoindex û ƱԸƮ</a></h2> - - - <p>ġ 2.0.23 û ƱԸƮ ϰ, - ο ɼǵ ߰ߴ. Ŭ̾Ʈ - <code><a href="#indexoptions.ignoreclient">IndexOptions - IgnoreClient</a></code> ɼ ߰Ǿ.</p> - - <p> ̸ Ʒ û ɼ ڱ - ũ. Ʒ ɼ 丮 ڿ û - ִ.</p> - - <ul> - <li><code>C=N</code> ϸ ̴</li> - - <li><code>C=M</code> ֱ , ϸ ̴</li> - - <li><code>C=S</code> ũ , ϸ ̴</li> - - <li class="separate"><code>C=D</code> , ϸ - ̴</li> - - <li><code>O=A</code> Ѵ</li> - - <li class="separate"><code>O=D</code> Ѵ</li> - - <li><code>F=0</code> (FancyIndexed ƴ) ̴</li> - - <li><code>F=1</code> FancyIndexed ̴</li> - - <li class="separate"><code>F=2</code> HTMLTable FancyIndexed - ̴</li> - - <li><code>V=0</code> ʴ´</li> - - <li class="separate"><code>V=1</code> Ѵ</li> - - <li><code>P=<var>pattern</var></code> ־ <var>pattern</var> - شϴ ϸ </li> - </ul> - - <p>'P'attern ƱԸƮ Ϲ <code class="directive"><a href="#indexignore">IndexIgnore</a></code> þ ó <em>Ŀ</em> - ˻ϱ, ٸ autoindex ϶. - <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> û ƱԸƮ о϶ - ɼ ߰ϸ ̻ ʴ´. û ƱԸƮ - ǥ Ѵ.</p> - - <p>header.html Ͽ ִ Ʒ - ɼǵ Ѵ. submit "X" ƱԸƮ - mod_autoindex X=Go ƱԸƮ о - Ȯϱ ߴ.</p> - - <div class="example"><p><code> - <form action="" method="get"><br /> - <span class="indent"> - Show me a <select name="F"><br /> - <span class="indent"> - <option value="0"> Plain list</option><br /> - <option value="1" selected="selected"> Fancy list</option><br /> - <option value="2"> Table list</option><br /> - </span> - </select><br /> - Sorted by <select name="C"><br /> - <span class="indent"> - <option value="N" selected="selected"> Name</option><br /> - <option value="M"> Date Modified</option><br /> - <option value="S"> Size</option><br /> - <option value="D"> Description</option><br /> - </span> - </select><br /> - <select name="O"><br /> - <span class="indent"> - <option value="A" selected="selected"> Ascending</option><br /> - <option value="D"> Descending</option><br /> - </span> - </select><br /> - <select name="V"><br /> - <span class="indent"> - <option value="0" selected="selected"> in Normal order</option><br /> - <option value="1"> in Version order</option><br /> - </span> - </select><br /> - Matching <input type="text" name="P" value="*" /><br /> - <input type="submit" name="X" value="Go" /><br /> - </span> - </form> - </code></p></div> - -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AddAlt" id="AddAlt">AddAlt</a> <a name="addalt" id="addalt">þ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">:</a></th><td>ϸ ܴ </td></tr> @@ -855,6 +764,97 @@ Name|Date|Size|Description</code></td></tr> <p> ڼ <code class="directive"><a href="#headername">HeaderName</a></code> ϶.</p> </div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="query" id="query">Autoindex û ƱԸƮ</a></h2> + + + <p>ġ 2.0.23 û ƱԸƮ ϰ, + ο ɼǵ ߰ߴ. Ŭ̾Ʈ + <code><a href="#indexoptions.ignoreclient">IndexOptions + IgnoreClient</a></code> ɼ ߰Ǿ.</p> + + <p> ̸ Ʒ û ɼ ڱ + ũ. Ʒ ɼ 丮 ڿ û + ִ.</p> + + <ul> + <li><code>C=N</code> ϸ ̴</li> + + <li><code>C=M</code> ֱ , ϸ ̴</li> + + <li><code>C=S</code> ũ , ϸ ̴</li> + + <li class="separate"><code>C=D</code> , ϸ + ̴</li> + + <li><code>O=A</code> Ѵ</li> + + <li class="separate"><code>O=D</code> Ѵ</li> + + <li><code>F=0</code> (FancyIndexed ƴ) ̴</li> + + <li><code>F=1</code> FancyIndexed ̴</li> + + <li class="separate"><code>F=2</code> HTMLTable FancyIndexed + ̴</li> + + <li><code>V=0</code> ʴ´</li> + + <li class="separate"><code>V=1</code> Ѵ</li> + + <li><code>P=<var>pattern</var></code> ־ <var>pattern</var> + شϴ ϸ </li> + </ul> + + <p>'P'attern ƱԸƮ Ϲ <code class="directive"><a href="#indexignore">IndexIgnore</a></code> þ ó <em>Ŀ</em> + ˻ϱ, ٸ autoindex ϶. + <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> û ƱԸƮ о϶ + ɼ ߰ϸ ̻ ʴ´. û ƱԸƮ + ǥ Ѵ.</p> + + <p>header.html Ͽ ִ Ʒ + ɼǵ Ѵ. submit "X" ƱԸƮ + mod_autoindex X=Go ƱԸƮ о + Ȯϱ ߴ.</p> + + <div class="example"><p><code> + <form action="" method="get"><br /> + <span class="indent"> + Show me a <select name="F"><br /> + <span class="indent"> + <option value="0"> Plain list</option><br /> + <option value="1" selected="selected"> Fancy list</option><br /> + <option value="2"> Table list</option><br /> + </span> + </select><br /> + Sorted by <select name="C"><br /> + <span class="indent"> + <option value="N" selected="selected"> Name</option><br /> + <option value="M"> Date Modified</option><br /> + <option value="S"> Size</option><br /> + <option value="D"> Description</option><br /> + </span> + </select><br /> + <select name="O"><br /> + <span class="indent"> + <option value="A" selected="selected"> Ascending</option><br /> + <option value="D"> Descending</option><br /> + </span> + </select><br /> + <select name="V"><br /> + <span class="indent"> + <option value="0" selected="selected"> in Normal order</option><br /> + <option value="1"> in Version order</option><br /> + </span> + </select><br /> + Matching <input type="text" name="P" value="*" /><br /> + <input type="submit" name="X" value="Go" /><br /> + </span> + </form> + </code></p></div> + +</div> </div> <div class="bottomlang"> <p><span> : </span><a href="../en/mod/mod_autoindex.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_autoindex.html.tr.utf8 b/docs/manual/mod/mod_autoindex.html.tr.utf8 index 73fd30bf84..cdc4875038 100644 --- a/docs/manual/mod/mod_autoindex.html.tr.utf8 +++ b/docs/manual/mod/mod_autoindex.html.tr.utf8 @@ -97,98 +97,6 @@ yaptığı gibi dizin içeriğini listeler.</td></tr> <li><img alt="" src="../images/down.gif" /> <a href="#query">Sütun Sıralamada Sorgu Seçenekleri</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="query" id="query">Sütun Sıralamada Sorgu Seçenekleri</a></h2> - - - <p>İstemciye, dizin içeriğini listelerken neleri hangi sırada - listeleyeceğini belirleyebilmesi için içerik üzerinde biraz denetim - sağlayabileceği çeşitli sorgu dizgesi bileşenleri sağlanmıştır. - Çıktı üzerinde kullanıcı denetimini tamamen ortadan kaldırmak için - <code class="directive"><a href="#indexoptions">IndexOptions</a></code> yönergesinin - <code><a href="#indexoptions.ignoreclient">IgnoreClient</a></code> - seçeneği kullanılabilir.</p> - - <p>Sütun sıralama başlıklarının her biri hedefi kendisi olan birer hiper - bağ olup aşağıda sıralanan sorgu seçeneklerini kullanırlar. Bu - seçeneklerin her biri her dizin içerik listesi isteğine eklenebilir.</p> - - <ul> - <li><code>C=N</code> dizini dosya adına göre sıralar</li> - - <li><code>C=M</code> dizini son değişiklik zamanına ve ardından dosya - ismine göre sıralar.</li> - - <li><code>C=S</code> dizini boyuta ve ardından dosya adına göre - sıralar</li> - - <li class="separate"><code>C=D</code> dizini açıklamaya ve ardından - dosya adına göre sıralar.</li> - - <li><code>O=A</code> artan sıralama uygulanır.</li> - - <li class="separate"><code>O=D</code> azalan sıralama uygulanır.</li> - - <li><code>F=0</code> listeleme basit listeleme biçiminde yapılır - (<code>FancyIndexing</code> seçeneği ile etkinleştirilen biçimde - değil)</li> - - <li><code>F=1</code> listeleme <code>FancyIndexing</code> seçeneği ile - etkinleştirilen biçimde yapılır</li> - - <li class="separate"><code>F=2</code> listeleme <code><a href="#indexoptions.fancyindexing">FancyIndexing</a></code> ve - <code><a href="#indexoptions.htmltable">HTMLTable</a></code> seçeneği - ile etkinleştirilen biçimde yapılır.</li> - - <li><code>V=0</code> sürüme göre sıralama iptal edilir.</li> - - <li class="separate"><code>V=1</code> sürüme göre sıralama etkin - kılınır.</li> - - <li><code>P=<var>kalıp</var></code> sadece belirtilen - <code><em>kalıp</em></code> ile eşleşen dosyalar istelenir.</li> - </ul> - - <p><code>P=<var>kalıp</var></code> sorgu seçeneğinin normalde <code class="directive"><a href="#indexignore">IndexIgnore</a></code> yönergesi işleme - sokulduktan sonra değerlendirildiğine ve dosya isimlerinin diğer - kendiliğinden içerik listeleme koşullarının konusu olmaya devam ettiğine - dikkat ediniz. <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> modülündeki Sorgu - Seçenekleri çözümleyicisi tanımadığı bir seçeneğe rastlar rastlamaz - işlemi durdurur. Sorgu Seçenekleri yukarıda belirtilene uygun olarak iyi - biçimli olmak zorundadır.</p> - - <p>Aşağıdaki basit örnekte sorgu seçeneklerinin kullanımı gösterilmiştir. - Son satırda bulunan "submit" düğmesindeki tanınmayan "X" girdisine - dikkat ediniz. "X=Göster" girdisi tüm seçenekler işlendikten sonra - <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> tarafından son argüman olarak ele - alınacak ve çözümleme işlemi o noktada duracaktır.</p> - - <div class="example"><pre><form action="" method="get"> - <input type="text" name="P" value="*" /> ile eşleşen - <select name="C"> - <option value="N" selected="selected">isme</option> - <option value="M"> değişiklik tarihine</option> - <option value="S"> boyuta</option> - <option value="D"> açıklamaya</option> - </select> göre - <select name="O"> - <option value="A" selected="selected"> artan</option> - <option value="D"> azalan</option> - </select> - <select name="V"> - <option value="0" selected="selected">normal</option> - <option value="1"> sürümlü</option> - </select> sıralamayla bir - <select name="F"> - <option value="0"> basit liste</option> - <option value="1" selected="selected"> süslü liste</option> - <option value="2"> tablolu liste</option> - </select> - <input type="submit" name="X" value="Göster" /> -</form></pre></div> - -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AddAlt" id="AddAlt">AddAlt</a> <a name="addalt" id="addalt">Yönergesi</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Dosyaya göre seçilen simgenin yerinde gösterilecek metni belirler. @@ -1037,6 +945,98 @@ belirler.</td></tr> 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><form action="" method="get"> + <input type="text" name="P" value="*" /> ile eşleşen + <select name="C"> + <option value="N" selected="selected">isme</option> + <option value="M"> değişiklik tarihine</option> + <option value="S"> boyuta</option> + <option value="D"> açıklamaya</option> + </select> göre + <select name="O"> + <option value="A" selected="selected"> artan</option> + <option value="D"> azalan</option> + </select> + <select name="V"> + <option value="0" selected="selected">normal</option> + <option value="1"> sürümlü</option> + </select> sıralamayla bir + <select name="F"> + <option value="0"> basit liste</option> + <option value="1" selected="selected"> süslü liste</option> + <option value="2"> tablolu liste</option> + </select> + <input type="submit" name="X" value="Göster" /> +</form></pre></div> + +</div> </div> <div class="bottomlang"> <p><span>Mevcut Diller: </span><a href="../en/mod/mod_autoindex.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_buffer.html.en b/docs/manual/mod/mod_buffer.html.en index 4a7d679174..507d1d9a3c 100644 --- a/docs/manual/mod/mod_buffer.html.en +++ b/docs/manual/mod/mod_buffer.html.en @@ -78,7 +78,6 @@ <ul class="seealso"> <li><a href="../filter.html">Filters</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="BufferSize" id="BufferSize">BufferSize</a> <a name="buffersize" id="buffersize">Directive</a></h2> <table class="directive"> @@ -95,6 +94,7 @@ The default is 128 kilobytes.</p> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_buffer.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_buffer.html.fr b/docs/manual/mod/mod_buffer.html.fr index 2427fa24ea..61e3e38450 100644 --- a/docs/manual/mod/mod_buffer.html.fr +++ b/docs/manual/mod/mod_buffer.html.fr @@ -81,7 +81,6 @@ d'Apache</td></tr></table> <ul class="seealso"> <li><a href="../filter.html">Les filtres</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="buffersize" id="buffersize">Directive</a> <a name="BufferSize" id="BufferSize">BufferSize</a></h2> <table class="directive"> @@ -98,6 +97,7 @@ d'Apache</td></tr></table> 128 ko.</p> </div> + </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_buffer.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_cache.html.en b/docs/manual/mod/mod_cache.html.en index fa37464a1e..a1d0f3df36 100644 --- a/docs/manual/mod/mod_cache.html.en +++ b/docs/manual/mod/mod_cache.html.en @@ -163,191 +163,6 @@ <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 -<IfModule mod_cache.c> - LoadModule cache_disk_module modules/mod_cache_disk.so - <IfModule mod_cache_disk.c> - CacheRoot c:/cacheroot - CacheEnable disk / - CacheDirLevels 5 - CacheDirLength 3 - </IfModule> - - # When acting as a proxy, don't cache the list of security updates - CacheDisable http://security.update.server/update-list/ -</IfModule></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 -# -<IfModule mod_cache.c> - CacheLock on - CacheLockPath /tmp/mod_cache-lock - CacheLockMaxAge 5 -</IfModule></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> @@ -1040,6 +855,191 @@ CacheStaleOnError on</pre> <li><code class="directive"><a href="#cachestorenostore">CacheStoreNoStore</a></code></li> </ul> </div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="related" id="related">Related Modules and Directives</a></h2> + <table class="related"><tr><th>Related Modules</th><th>Related Directives</th></tr><tr><td><ul><li><code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code></li><li><code class="module"><a href="../mod/mod_cache_socache.html">mod_cache_socache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheroot">CacheRoot</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlevels">CacheDirLevels</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlength">CacheDirLength</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheminfilesize">CacheMinFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachemaxfilesize">CacheMaxFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocache">CacheSocache</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemaxtime">CacheSocacheMaxTime</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemintime">CacheSocacheMinTime</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemaxsize">CacheSocacheMaxSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachereadsize">CacheSocacheReadSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachereadtime">CacheSocacheReadTime</a></code></li></ul></td></tr></table> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="sampleconf" id="sampleconf">Sample Configuration</a></h2> + <div class="example"><h3>Sample httpd.conf</h3><pre class="prettyprint lang-config"># +# Sample Cache Configuration +# +LoadModule cache_module modules/mod_cache.so +<IfModule mod_cache.c> + LoadModule cache_disk_module modules/mod_cache_disk.so + <IfModule mod_cache_disk.c> + CacheRoot c:/cacheroot + CacheEnable disk / + CacheDirLevels 5 + CacheDirLength 3 + </IfModule> + + # When acting as a proxy, don't cache the list of security updates + CacheDisable http://security.update.server/update-list/ +</IfModule></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 +# +<IfModule mod_cache.c> + CacheLock on + CacheLockPath /tmp/mod_cache-lock + CacheLockMaxAge 5 +</IfModule></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"> en </a> | diff --git a/docs/manual/mod/mod_cache.html.fr b/docs/manual/mod/mod_cache.html.fr index 27d7f6d447..43a87e57c8 100644 --- a/docs/manual/mod/mod_cache.html.fr +++ b/docs/manual/mod/mod_cache.html.fr @@ -172,218 +172,6 @@ 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 apparents et directives</a></h2> - <table class="related"><tr><th>Modules Apparents</th><th>Directives Apparentes</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 -<IfModule mod_cache.c> - LoadModule cache_disk_module modules/mod_cache_disk.so - <IfModule mod_cache_disk.c> - CacheRoot c:/cacheroot - CacheEnable disk / - CacheDirLevels 5 - CacheDirLength 3 - </IfModule> - - # Lorsqu'on sert de mandataire, on ne met pas en cache la liste -# des mises jour de scurit - CacheDisable http://security.update.server/update-list/ -</IfModule></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 tempte de requte</a></h2> - <p>Lorsqu'une entre du cache est prime, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> - soumet une requte conditionnelle au processus d'arrire-plan, qui est - cens confirmer la validit de l'entre du cache, ou dans la ngative - envoyer une entre mise jour.</p> - <p>Un court mais non ngligeable laps de temps existe entre le moment - o l'entre du cache est prime, et le moment o elle est mise - jour. Sur un serveur fortement charg, un certain nombre de requtes - peut arriver pendant ce laps de temps, et provoquer une - <strong>tempte</strong> de requtes susceptibles de saturer le - processus d'arrire-plan de manire soudaine et imprdictible.</p> - <p>Pour contenir cette tempte, on peut utiliser la directive - <code class="directive">CacheLock</code> afin de dfinir un rpertoire o - seront crs <strong> la vole</strong> des verrous pour les URLs. - Ces verrous sont utiliss comme autant d'<strong>indications</strong> - par les autres requtes, soit pour empcher une tentative de mise en - cache (un autre processus est en train de rcuprer l'entit), soit - pour indiquer qu'une entre prime est en cours de mise jour - (pendant ce temps, c'est le contenu prim qui sera renvoy). - </p> - <h3>Mise en cache initiale d'une entre</h3> - - <p>Lorsqu'une entit est mise en cache pour la premire fois, un - verrou est cr pour cette entit jusqu' ce que la rponse ait t - entirement mise en cache. Pendant la dure de vie du verrou, le - cache va empcher une seconde tentative de mise en cache de la mme - entit. Bien que cela ne suffise pas contenir la tempte de - requtes, toute tentative de mettre en cache la mme entit - plusieurs fois simultanment est stoppe. - </p> - - <h3>Mise jour d'une entre prime</h3> - - <p>Lorsqu'une entre atteint la limite de sa dure de vie, et - devient par consquent prime, un verrou est cr pour cette entit - jusqu' ce que la rponse ait t soit confirme comme encore - valide, soit remplace par le processus d'arrire-plan. Pendant la - dure de vie du verrou, une seconde requte entrante va provoquer le - renvoi de la donne prime, et la tempte de requtes sera - contenue.</p> - - <h3>Verrous et en-tte Cache-Control: no-cache</h3> - - <p>Les verrous ne sont utiliss <strong>qu' titre - indicatif</strong> pour enjoindre le cache tre plus coopratif - avec les serveurs d'arrire-plan, et il est possible de passer outre - si ncessaire. Si le client envoie une requte contenant un en-tte - Cache-Control imposant un nouveau tlchargement de l'entit, tout - verrou ventuel sera ignor, la requte du client sera honore - immdiatement, et l'entre du cache mise jour.</p> - - <p>Comme mcanisme de scurit supplmentaire, la dure de vie - maximale des verrous est configurable. Lorsque cette limite est - atteinte, le verrou est supprim et une autre requte peut alors en - crer un nouveau. Cette dure de vie peut tre dfinie via la - directive <code class="directive">CacheLockMaxAge</code>, et sa valeur par - dfaut 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 -# -<IfModule mod_cache.c> - CacheLock on - CacheLockPath /tmp/mod_cache-lock - CacheLockMaxAge 5 -</IfModule></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">Contrle fin via le filtre CACHE</a></h2> - <p>Dans son mode de fonctionnement par dfaut, le cache s'excute sous - la forme d'un gestionnaire rapide, court-circuitant la majorit des - traitements du serveur et fournissant ainsi une mise en cache - possdant 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 indpendant 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 requte aprs que cette dernire 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 indpendants soit derrire, - soit devant le serveur de mise en cache.</p> - - <p>Pour rsoudre ce problme, la directive <code class="directive"><a href="#cachequickhandler">CacheQuickHandler</a></code> peut tre dfinie - <strong>off</strong>, afin que le serveur traite toutes les phases - normalement excutes par une requte non mise en cache, y compris les - phases <strong>d'authentification et d'autorisation</strong>.</p> - - <p>En outre, l'administrateur peut ventuellement spcifier le - <strong>point prcis dans la chane de filtrage</strong> o devra - intervenir la mise en cache en ajoutant le filtre - <strong>CACHE</strong> la chane de filtrage en sortie.</p> - - <p>Par exemple, pour mettre en cache le contenu avant d'appliquer une - compression la rponse, 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 modles 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 - interprts :</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 insrer le filtre <strong>CACHE</strong> en tout point - de la chane de filtrage. Dans l'exemple suivant, le contenu est mis - en cache aprs avoir t interprt 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 chane de filtrage est modifi, vous - devez <strong>vider votre cache</strong> pour tre sr que les donnes - 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 opration 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 dcid s'il devait ou non - servir une entit depuis le cache, les raisons prcises de cette - dcision sont enregistres dans l'environnement du sous-processus - interne la requte sous la cl <strong>cache-status</strong>. - Cette information peut tre journalise 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 dcision prise, l'information est aussi crite - dans l'environnement du sous-processus sous une des quatre cls - 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 prim, a t - mis jour avec succs, 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 requte d'un type autre que GET ou HEAD.</dd> - </dl> - - <p>Il est alors possible d'envisager une journalisation conditionnelle - du traitement des requtes 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) nomme - <var>cache_status</var> est disponible et permet aux modules de - rpondre aux rsultats de la vrification du cache ci-dessus de manire - personnalise.</p> - -</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 dure par dfaut de mise en cache d'un document @@ -1157,6 +945,218 @@ marques comme prives</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">Modules apparents et directives</a></h2> + <table class="related"><tr><th>Modules Apparents</th><th>Directives Apparentes</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 +<IfModule mod_cache.c> + LoadModule cache_disk_module modules/mod_cache_disk.so + <IfModule mod_cache_disk.c> + CacheRoot c:/cacheroot + CacheEnable disk / + CacheDirLevels 5 + CacheDirLength 3 + </IfModule> + + # Lorsqu'on sert de mandataire, on ne met pas en cache la liste +# des mises jour de scurit + CacheDisable http://security.update.server/update-list/ +</IfModule></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 tempte de requte</a></h2> + <p>Lorsqu'une entre du cache est prime, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> + soumet une requte conditionnelle au processus d'arrire-plan, qui est + cens confirmer la validit de l'entre du cache, ou dans la ngative + envoyer une entre mise jour.</p> + <p>Un court mais non ngligeable laps de temps existe entre le moment + o l'entre du cache est prime, et le moment o elle est mise + jour. Sur un serveur fortement charg, un certain nombre de requtes + peut arriver pendant ce laps de temps, et provoquer une + <strong>tempte</strong> de requtes susceptibles de saturer le + processus d'arrire-plan de manire soudaine et imprdictible.</p> + <p>Pour contenir cette tempte, on peut utiliser la directive + <code class="directive">CacheLock</code> afin de dfinir un rpertoire o + seront crs <strong> la vole</strong> des verrous pour les URLs. + Ces verrous sont utiliss comme autant d'<strong>indications</strong> + par les autres requtes, soit pour empcher une tentative de mise en + cache (un autre processus est en train de rcuprer l'entit), soit + pour indiquer qu'une entre prime est en cours de mise jour + (pendant ce temps, c'est le contenu prim qui sera renvoy). + </p> + <h3>Mise en cache initiale d'une entre</h3> + + <p>Lorsqu'une entit est mise en cache pour la premire fois, un + verrou est cr pour cette entit jusqu' ce que la rponse ait t + entirement mise en cache. Pendant la dure de vie du verrou, le + cache va empcher une seconde tentative de mise en cache de la mme + entit. Bien que cela ne suffise pas contenir la tempte de + requtes, toute tentative de mettre en cache la mme entit + plusieurs fois simultanment est stoppe. + </p> + + <h3>Mise jour d'une entre prime</h3> + + <p>Lorsqu'une entre atteint la limite de sa dure de vie, et + devient par consquent prime, un verrou est cr pour cette entit + jusqu' ce que la rponse ait t soit confirme comme encore + valide, soit remplace par le processus d'arrire-plan. Pendant la + dure de vie du verrou, une seconde requte entrante va provoquer le + renvoi de la donne prime, et la tempte de requtes sera + contenue.</p> + + <h3>Verrous et en-tte Cache-Control: no-cache</h3> + + <p>Les verrous ne sont utiliss <strong>qu' titre + indicatif</strong> pour enjoindre le cache tre plus coopratif + avec les serveurs d'arrire-plan, et il est possible de passer outre + si ncessaire. Si le client envoie une requte contenant un en-tte + Cache-Control imposant un nouveau tlchargement de l'entit, tout + verrou ventuel sera ignor, la requte du client sera honore + immdiatement, et l'entre du cache mise jour.</p> + + <p>Comme mcanisme de scurit supplmentaire, la dure de vie + maximale des verrous est configurable. Lorsque cette limite est + atteinte, le verrou est supprim et une autre requte peut alors en + crer un nouveau. Cette dure de vie peut tre dfinie via la + directive <code class="directive">CacheLockMaxAge</code>, et sa valeur par + dfaut 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 +# +<IfModule mod_cache.c> + CacheLock on + CacheLockPath /tmp/mod_cache-lock + CacheLockMaxAge 5 +</IfModule></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">Contrle fin via le filtre CACHE</a></h2> + <p>Dans son mode de fonctionnement par dfaut, le cache s'excute sous + la forme d'un gestionnaire rapide, court-circuitant la majorit des + traitements du serveur et fournissant ainsi une mise en cache + possdant 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 indpendant 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 requte aprs que cette dernire 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 indpendants soit derrire, + soit devant le serveur de mise en cache.</p> + + <p>Pour rsoudre ce problme, la directive <code class="directive"><a href="#cachequickhandler">CacheQuickHandler</a></code> peut tre dfinie + <strong>off</strong>, afin que le serveur traite toutes les phases + normalement excutes par une requte non mise en cache, y compris les + phases <strong>d'authentification et d'autorisation</strong>.</p> + + <p>En outre, l'administrateur peut ventuellement spcifier le + <strong>point prcis dans la chane de filtrage</strong> o devra + intervenir la mise en cache en ajoutant le filtre + <strong>CACHE</strong> la chane de filtrage en sortie.</p> + + <p>Par exemple, pour mettre en cache le contenu avant d'appliquer une + compression la rponse, 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 modles 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 + interprts :</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 insrer le filtre <strong>CACHE</strong> en tout point + de la chane de filtrage. Dans l'exemple suivant, le contenu est mis + en cache aprs avoir t interprt 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 chane de filtrage est modifi, vous + devez <strong>vider votre cache</strong> pour tre sr que les donnes + 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 opration 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 dcid s'il devait ou non + servir une entit depuis le cache, les raisons prcises de cette + dcision sont enregistres dans l'environnement du sous-processus + interne la requte sous la cl <strong>cache-status</strong>. + Cette information peut tre journalise 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 dcision prise, l'information est aussi crite + dans l'environnement du sous-processus sous une des quatre cls + 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 prim, a t + mis jour avec succs, 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 requte d'un type autre que GET ou HEAD.</dd> + </dl> + + <p>Il est alors possible d'envisager une journalisation conditionnelle + du traitement des requtes 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) nomme + <var>cache_status</var> est disponible et permet aux modules de + rpondre aux rsultats de la vrification du cache ci-dessus de manire + personnalise.</p> + +</div> </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_cache.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_cache.html.ja.utf8 b/docs/manual/mod/mod_cache.html.ja.utf8 index 5a6b55e600..bd64661148 100644 --- a/docs/manual/mod/mod_cache.html.ja.utf8 +++ b/docs/manual/mod/mod_cache.html.ja.utf8 @@ -105,50 +105,6 @@ <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 /> - <IfModule mod_cache.c><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 /> - <IfModule mod_cache_disk.c><br /> - <span class="indent"> - CacheRoot c:/cacheroot<br /> - CacheEnable disk /<br /> - CacheDirLevels 5<br /> - CacheDirLength 3<br /> - </span> - </IfModule> <br /> - <br /> - LoadModule mem_cache_module modules/mod_mem_cache.so<br /> - <IfModule mod_mem_cache.c><br /> - <span class="indent"> - CacheEnable mem /<br /> - MCacheSize 4096<br /> - MCacheMaxObjectCount 100<br /> - MCacheMinObjectSize 1<br /> - MCacheMaxObjectSize 2048<br /> - </span> - </IfModule><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> - </IfModule> - </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> @@ -645,6 +601,50 @@ <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 /> + <IfModule mod_cache.c><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 /> + <IfModule mod_cache_disk.c><br /> + <span class="indent"> + CacheRoot c:/cacheroot<br /> + CacheEnable disk /<br /> + CacheDirLevels 5<br /> + CacheDirLength 3<br /> + </span> + </IfModule> <br /> + <br /> + LoadModule mem_cache_module modules/mod_mem_cache.so<br /> + <IfModule mod_mem_cache.c><br /> + <span class="indent"> + CacheEnable mem /<br /> + MCacheSize 4096<br /> + MCacheMaxObjectCount 100<br /> + MCacheMinObjectSize 1<br /> + MCacheMaxObjectSize 2048<br /> + </span> + </IfModule><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> + </IfModule> + </code></p></div> +</div> </div> <div class="bottomlang"> <p><span>翻訳済み言語: </span><a href="../en/mod/mod_cache.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_cache.html.ko.euc-kr b/docs/manual/mod/mod_cache.html.ko.euc-kr index f1a0071987..4126129c3b 100644 --- a/docs/manual/mod/mod_cache.html.ko.euc-kr +++ b/docs/manual/mod/mod_cache.html.ko.euc-kr @@ -95,46 +95,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#sampleconf"></a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="related" id="related">õ þ</a></h2> - <table class="related"><tr><th>õ </th><th>õ þ</th></tr><tr><td><ul><li><code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code></li><li><code class="module"><a href="../mod/mod_mem_cache.html">mod_mem_cache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheroot">CacheRoot</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachesize">CacheSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachegcinterval">CacheGcInterval</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlevels">CacheDirLevels</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlength">CacheDirLength</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheexpirycheck">CacheExpiryCheck</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheminfilesize">CacheMinFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachemaxfilesize">CacheMaxFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachetimemargin">CacheTimeMargin</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachegcdaily">CacheGcDaily</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachegcunused">CacheGcUnused</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachegcclean">CacheGcClean</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachegcmemusage">CacheGcMemUsage</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcachesize">MCacheSize</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcachemaxobjectcount">MCacheMaxObjectCount</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcacheminobjectsize">MCacheMinObjectSize</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcachemaxobjectsize">MCacheMaxObjectSize</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcacheremovalalgorithm">MCacheRemovalAlgorithm</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcachemaxstreamingbuffer">MCacheMaxStreamingBuffer</a></code></li></ul></td></tr></table> -</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="sampleconf" id="sampleconf"></a></h2> - <div class="example"><h3>Sample httpd.conf</h3><p><code> - #<br /> - # ij <br /> - #<br /> - LoadModule cache_module modules/mod_cache.so<br /> - <br /> - <IfModule mod_cache.c><br /> - <span class="indent"> - #LoadModule cache_disk_module modules/mod_cache_disk.so<br /> - <IfModule mod_cache_disk.c><br /> - <span class="indent"> - CacheRoot c:/cacheroot<br /> - CacheSize 256<br /> - CacheEnable disk /<br /> - CacheDirLevels 5<br /> - CacheDirLength 3<br /> - </span> - </IfModule> <br /> - <br /> - LoadModule mem_cache_module modules/mod_mem_cache.so<br /> - <IfModule mod_mem_cache.c><br /> - <span class="indent"> - CacheEnable mem /<br /> - MCacheSize 4096<br /> - MCacheMaxObjectCount 100<br /> - MCacheMinObjectSize 1<br /> - MCacheMaxObjectSize 2048<br /> - </span> - </IfModule><br /> - </span> - </IfModule> - </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>ð ij ⺻ Ⱓ.</td></tr> @@ -495,6 +455,46 @@ <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 /> + # ij <br /> + #<br /> + LoadModule cache_module modules/mod_cache.so<br /> + <br /> + <IfModule mod_cache.c><br /> + <span class="indent"> + #LoadModule cache_disk_module modules/mod_cache_disk.so<br /> + <IfModule mod_cache_disk.c><br /> + <span class="indent"> + CacheRoot c:/cacheroot<br /> + CacheSize 256<br /> + CacheEnable disk /<br /> + CacheDirLevels 5<br /> + CacheDirLength 3<br /> + </span> + </IfModule> <br /> + <br /> + LoadModule mem_cache_module modules/mod_mem_cache.so<br /> + <IfModule mod_mem_cache.c><br /> + <span class="indent"> + CacheEnable mem /<br /> + MCacheSize 4096<br /> + MCacheMaxObjectCount 100<br /> + MCacheMinObjectSize 1<br /> + MCacheMaxObjectSize 2048<br /> + </span> + </IfModule><br /> + </span> + </IfModule> + </code></p></div> +</div> </div> <div class="bottomlang"> <p><span> : </span><a href="../en/mod/mod_cache.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_cache_disk.html.en b/docs/manual/mod/mod_cache_disk.html.en index 8ae17a0644..6d75fb9530 100644 --- a/docs/manual/mod/mod_cache_disk.html.en +++ b/docs/manual/mod/mod_cache_disk.html.en @@ -88,7 +88,6 @@ <li><code class="module"><a href="../mod/mod_cache_socache.html">mod_cache_socache</a></code></li> <li><a href="../caching.html">Caching Guide</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="CacheDirLength" id="CacheDirLength">CacheDirLength</a> <a name="cachedirlength" id="cachedirlength">Directive</a></h2> <table class="directive"> @@ -257,6 +256,7 @@ stored</td></tr> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_cache_disk.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_cache_disk.html.fr b/docs/manual/mod/mod_cache_disk.html.fr index 11cd30a607..24d422594e 100644 --- a/docs/manual/mod/mod_cache_disk.html.fr +++ b/docs/manual/mod/mod_cache_disk.html.fr @@ -92,7 +92,6 @@ cache HTTP.</td></tr> <li><code class="module"><a href="../mod/mod_cache_socache.html">mod_cache_socache</a></code></li> <li><a href="../caching.html">Guide de la mise en cache</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="cachedirlength" id="cachedirlength">Directive</a> <a name="CacheDirLength" id="CacheDirLength">CacheDirLength</a></h2> <table class="directive"> @@ -275,6 +274,7 @@ seront stocks</td></tr> </div> + </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_cache_disk.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_cache_disk.html.ja.utf8 b/docs/manual/mod/mod_cache_disk.html.ja.utf8 index e4ff0c5fb4..37a1816b9d 100644 --- a/docs/manual/mod/mod_cache_disk.html.ja.utf8 +++ b/docs/manual/mod/mod_cache_disk.html.ja.utf8 @@ -65,7 +65,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#cacheroot">CacheRoot</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="CacheDirLength" id="CacheDirLength">CacheDirLength</a> <a name="cachedirlength" id="cachedirlength">ディレクティブ</a></h2> <table class="directive"> @@ -197,6 +196,7 @@ </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"> en </a> | diff --git a/docs/manual/mod/mod_cache_disk.html.ko.euc-kr b/docs/manual/mod/mod_cache_disk.html.ko.euc-kr index 1c8db897b6..9ff53df588 100644 --- a/docs/manual/mod/mod_cache_disk.html.ko.euc-kr +++ b/docs/manual/mod/mod_cache_disk.html.ko.euc-kr @@ -64,7 +64,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#cacheroot">CacheRoot</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="CacheDirLength" id="CacheDirLength">CacheDirLength</a> <a name="cachedirlength" id="cachedirlength">þ</a></h2> <table class="directive"> @@ -191,6 +190,7 @@ </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"> en </a> | diff --git a/docs/manual/mod/mod_cache_socache.html.en b/docs/manual/mod/mod_cache_socache.html.en index 19bdec9b45..046e53a0c1 100644 --- a/docs/manual/mod/mod_cache_socache.html.en +++ b/docs/manual/mod/mod_cache_socache.html.en @@ -83,7 +83,6 @@ CacheSocacheMaxSize 102400 <li><code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code></li> <li><a href="../caching.html">Caching Guide</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="CacheSocache" id="CacheSocache">CacheSocache</a> <a name="cachesocache" id="cachesocache">Directive</a></h2> <table class="directive"> @@ -233,6 +232,7 @@ cache</td></tr> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_cache_socache.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_cache_socache.html.fr b/docs/manual/mod/mod_cache_socache.html.fr index 361c1a363c..e60328c97c 100644 --- a/docs/manual/mod/mod_cache_socache.html.fr +++ b/docs/manual/mod/mod_cache_socache.html.fr @@ -84,7 +84,6 @@ CacheSocacheMaxSize 102400 <li><code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code></li> <li><a href="../caching.html">Guide de la mise en cache</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="cachesocache" id="cachesocache">Directive</a> <a name="CacheSocache" id="CacheSocache">CacheSocache</a></h2> <table class="directive"> @@ -246,6 +245,7 @@ Apache</td></tr> </div> + </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_cache_socache.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_cern_meta.html.en b/docs/manual/mod/mod_cern_meta.html.en index d35da811ca..87b06172c6 100644 --- a/docs/manual/mod/mod_cern_meta.html.en +++ b/docs/manual/mod/mod_cern_meta.html.en @@ -56,7 +56,6 @@ <li><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code></li> <li><code class="module"><a href="../mod/mod_asis.html">mod_asis</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="MetaDir" id="MetaDir">MetaDir</a> <a name="metadir" id="metadir">Directive</a></h2> <table class="directive"> @@ -123,6 +122,7 @@ meta information</td></tr> </div> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_cern_meta.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_cern_meta.html.fr b/docs/manual/mod/mod_cern_meta.html.fr index 12847614d8..43b62f8804 100644 --- a/docs/manual/mod/mod_cern_meta.html.fr +++ b/docs/manual/mod/mod_cern_meta.html.fr @@ -58,7 +58,6 @@ CERN</td></tr> <li><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code></li> <li><code class="module"><a href="../mod/mod_asis.html">mod_asis</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="metadir" id="metadir">Directive</a> <a name="MetaDir" id="MetaDir">MetaDir</a></h2> <table class="directive"> @@ -128,6 +127,7 @@ style du CERN</td></tr> </div> </div> + </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_cern_meta.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_cern_meta.html.ko.euc-kr b/docs/manual/mod/mod_cern_meta.html.ko.euc-kr index 2321089e28..f96af0eb04 100644 --- a/docs/manual/mod/mod_cern_meta.html.ko.euc-kr +++ b/docs/manual/mod/mod_cern_meta.html.ko.euc-kr @@ -56,7 +56,6 @@ <li><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code></li> <li><code class="module"><a href="../mod/mod_asis.html">mod_asis</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="MetaDir" id="MetaDir">MetaDir</a> <a name="metadir" id="metadir">þ</a></h2> <table class="directive"> @@ -116,6 +115,7 @@ </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"> en </a> | diff --git a/docs/manual/mod/mod_cgi.html.en b/docs/manual/mod/mod_cgi.html.en index 6b9d1879c1..2fce05aa43 100644 --- a/docs/manual/mod/mod_cgi.html.en +++ b/docs/manual/mod/mod_cgi.html.en @@ -78,6 +78,78 @@ <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 @@ -162,78 +234,6 @@ 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"> <p><span>Available Languages: </span><a href="../en/mod/mod_cgi.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_cgi.html.fr b/docs/manual/mod/mod_cgi.html.fr index 00b4b5150c..850a31baad 100644 --- a/docs/manual/mod/mod_cgi.html.fr +++ b/docs/manual/mod/mod_cgi.html.fr @@ -78,6 +78,88 @@ utilisateurs diffrents</a></li> 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> dfinit + le chemin du fichier journal des erreurs du script CGI. Si cette + directive n'est pas dfinie, aucune journalisation des erreurs n'est + effectue. Si elle est dfinie, toute erreur CGI sera enregistre + dans le fichier dont le nom est fourni en argument. S'il s'agit d'un + chemin de fichier relatif, il est considr par rapport au + rpertoire dfini 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'excutent, c'est dire l'utilisateur spcifi + par la directive du serveur <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code>. Ceci implique que soit le + rpertoire 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 rpertoire 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'excutent.</p> + + <p>Notez que l'on ne doit activer la journalisation des scripts + qu' des fins de dbogage lors de l'criture de scripts CGI, et non + de manire permanente sur un serveur en production. Elle n'est pas + optimise en ce qui concerne la vitesse et l'efficacit, et peut + prsenter des problmes de scurit si on l'utilise dans un cadre + autre que celui pour lequel elle a t conue.</p> + +</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 requtes PUT ou POST qui seront +enregistres 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">Dfaut:</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 enregistre dans le journal, afin + de prvenir une croissance trop importante et trop rapide du fichier + journal due la rception de corps de requte de grandes tailles. + Cette directive modifie cette taille maximale, dont la + valeur par dfaut 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">Dfaut:</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> + dfinit 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-ttes de la requte, toutes les sorties du + script), il peut vite atteindre une grande taille. En limitant la + taille du fichier, cette directive permet d'viter les problmes que + causerait sa croissance sans limites. Lorsque le fichier a atteint + cette taille maximale, plus aucune information n'y est + enregistre.</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 dfinir les variables d'environnement CGI comme @@ -171,88 +253,6 @@ CGI</a></li> 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> dfinit - le chemin du fichier journal des erreurs du script CGI. Si cette - directive n'est pas dfinie, aucune journalisation des erreurs n'est - effectue. Si elle est dfinie, toute erreur CGI sera enregistre - dans le fichier dont le nom est fourni en argument. S'il s'agit d'un - chemin de fichier relatif, il est considr par rapport au - rpertoire dfini 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'excutent, c'est dire l'utilisateur spcifi - par la directive du serveur <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code>. Ceci implique que soit le - rpertoire 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 rpertoire 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'excutent.</p> - - <p>Notez que l'on ne doit activer la journalisation des scripts - qu' des fins de dbogage lors de l'criture de scripts CGI, et non - de manire permanente sur un serveur en production. Elle n'est pas - optimise en ce qui concerne la vitesse et l'efficacit, et peut - prsenter des problmes de scurit si on l'utilise dans un cadre - autre que celui pour lequel elle a t conue.</p> - -</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 requtes PUT ou POST qui seront -enregistres 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">Dfaut:</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 enregistre dans le journal, afin - de prvenir une croissance trop importante et trop rapide du fichier - journal due la rception de corps de requte de grandes tailles. - Cette directive modifie cette taille maximale, dont la - valeur par dfaut 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">Dfaut:</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> - dfinit 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-ttes de la requte, toutes les sorties du - script), il peut vite atteindre une grande taille. En limitant la - taille du fichier, cette directive permet d'viter les problmes que - causerait sa croissance sans limites. Lorsque le fichier a atteint - cette taille maximale, plus aucune information n'y est - enregistre.</p> - -</div> </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_cgi.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_cgi.html.ja.utf8 b/docs/manual/mod/mod_cgi.html.ja.utf8 index 4360f63064..b7e179758f 100644 --- a/docs/manual/mod/mod_cgi.html.ja.utf8 +++ b/docs/manual/mod/mod_cgi.html.ja.utf8 @@ -75,6 +75,81 @@ <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 @@ -165,81 +240,6 @@ %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"> <p><span>翻訳済み言語: </span><a href="../en/mod/mod_cgi.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_cgi.html.ko.euc-kr b/docs/manual/mod/mod_cgi.html.ko.euc-kr index 4583fdf3b7..c068484eaa 100644 --- a/docs/manual/mod/mod_cgi.html.ko.euc-kr +++ b/docs/manual/mod/mod_cgi.html.ko.euc-kr @@ -78,6 +78,75 @@ <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 Ҷ ( + û , ũƮ ) α + ϵDZ ſ Ŀ ִ. Ŀ + þ Ͽ 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> ϴ @@ -158,75 +227,6 @@ ʾҴٸ %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 Ҷ ( - û , ũƮ ) α - ϵDZ ſ Ŀ ִ. Ŀ - þ Ͽ CGI α ִ - ũ⸦ Ѵ. ũⰡ - ̻ ʴ´.</p> - -</div> </div> <div class="bottomlang"> <p><span> : </span><a href="../en/mod/mod_cgi.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_cgid.html.en b/docs/manual/mod/mod_cgid.html.en index 1c0c3d9351..3a27551b07 100644 --- a/docs/manual/mod/mod_cgid.html.en +++ b/docs/manual/mod/mod_cgid.html.en @@ -74,7 +74,6 @@ <li><a href="../suexec.html">Running CGI programs under different user IDs</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="CGIDScriptTimeout" id="CGIDScriptTimeout">CGIDScriptTimeout</a> <a name="cgidscripttimeout" id="cgidscripttimeout">Directive</a></h2> <table class="directive"> @@ -126,6 +125,7 @@ the cgi daemon</td></tr> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_cgid.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_cgid.html.fr b/docs/manual/mod/mod_cgid.html.fr index 74a8728c75..d50993facf 100644 --- a/docs/manual/mod/mod_cgid.html.fr +++ b/docs/manual/mod/mod_cgid.html.fr @@ -78,7 +78,6 @@ threads</td></tr></table> <li><a href="../suexec.html">Excution de programmes CGI sous des utilisateurs diffrents</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="cgidscripttimeout" id="cgidscripttimeout">Directive</a> <a name="CGIDScriptTimeout" id="CGIDScriptTimeout">CGIDScriptTimeout</a></h2> <table class="directive"> @@ -130,6 +129,7 @@ communiquer avec le dmon CGI</td></tr> </div> + </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_cgid.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_cgid.html.ja.utf8 b/docs/manual/mod/mod_cgid.html.ja.utf8 index c2f9e5996c..e6e6fc35b1 100644 --- a/docs/manual/mod/mod_cgid.html.ja.utf8 +++ b/docs/manual/mod/mod_cgid.html.ja.utf8 @@ -73,7 +73,6 @@ <li><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code></li> <li><a href="../suexec.html">CGI プログラムを違うユーザ ID で実行する</a></li> </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="CGIDScriptTimeout" id="CGIDScriptTimeout">CGIDScriptTimeout</a> <a name="cgidscripttimeout" id="cgidscripttimeout">ディレクティブ</a></h2> <table class="directive"> @@ -113,6 +112,7 @@ unset</code></td></tr> </div> + </div> <div class="bottomlang"> <p><span>翻訳済み言語: </span><a href="../en/mod/mod_cgid.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_cgid.html.ko.euc-kr b/docs/manual/mod/mod_cgid.html.ko.euc-kr index 19764fc02d..bf77d552dc 100644 --- a/docs/manual/mod/mod_cgid.html.ko.euc-kr +++ b/docs/manual/mod/mod_cgid.html.ko.euc-kr @@ -71,7 +71,6 @@ <li><a href="../suexec.html">ٸ ID CGI α ϱ</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="CGIDScriptTimeout" id="CGIDScriptTimeout">CGIDScriptTimeout</a> <a name="cgidscripttimeout" id="cgidscripttimeout">þ</a></h2> <table class="directive"> @@ -109,6 +108,7 @@ unset</code></td></tr> </div> + </div> <div class="bottomlang"> <p><span> : </span><a href="../en/mod/mod_cgid.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_charset_lite.html.en b/docs/manual/mod/mod_charset_lite.html.en index 51141a4150..c1a592140f 100644 --- a/docs/manual/mod/mod_charset_lite.html.en +++ b/docs/manual/mod/mod_charset_lite.html.en @@ -60,43 +60,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#problems">Common Problems</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="problems" id="problems">Common Problems</a></h2> - - <h3>Invalid character set names</h3> - - <p>The character set name parameters of <code class="directive"><a href="#charsetsourceenc">CharsetSourceEnc</a></code> and - <code class="directive"><a href="#charsetdefault">CharsetDefault</a></code> - must be acceptable to the translation mechanism used by - <a class="glossarylink" href="../glossary.html#apr" title="see glossary">APR</a> on the system where - <code class="module"><a href="../mod/mod_charset_lite.html">mod_charset_lite</a></code> is deployed. These character - set names are not standardized and are usually not the same as - the corresponding values used in http headers. Currently, APR - can only use iconv(3), so you can easily test your character set - names using the iconv(1) program, as follows:</p> - - <div class="example"><p><code> - iconv -f charsetsourceenc-value -t charsetdefault-value - </code></p></div> - - - <h3>Mismatch between character set of content and translation - rules</h3> - - <p>If the translation rules don't make sense for the content, - translation can fail in various ways, including:</p> - - <ul> - <li>The translation mechanism may return a bad return code, - and the connection will be aborted.</li> - - <li>The translation mechanism may silently place special - characters (e.g., question marks) in the output buffer when - it cannot translate the input buffer.</li> - </ul> - -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="CharsetDefault" id="CharsetDefault">CharsetDefault</a> <a name="charsetdefault" id="charsetdefault">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Charset to translate into</td></tr> @@ -200,6 +163,43 @@ </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"> <p><span>Available Languages: </span><a href="../en/mod/mod_charset_lite.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_charset_lite.html.fr b/docs/manual/mod/mod_charset_lite.html.fr index 8527c0e7c6..54ccb6aa0d 100644 --- a/docs/manual/mod/mod_charset_lite.html.fr +++ b/docs/manual/mod/mod_charset_lite.html.fr @@ -62,47 +62,6 @@ traductions ou les rencodages</td></tr> <li><img alt="" src="../images/down.gif" /> <a href="#problems">Problmes courants</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="problems" id="problems">Problmes courants</a></h2> - - <h3>Noms de jeux de caractres non valides</h3> - - <p>Les noms des jeux de caractres passs en paramtres 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 mcanisme de traduction utilis par - <a class="glossarylink" href="../glossary.html#apr" title="voir glossaire">APR</a> sur le systme o - <code class="module"><a href="../mod/mod_charset_lite.html">mod_charset_lite</a></code> est utilis. Ces noms de jeux de - caractres ne sont pas standardiss, et sont en gnral diffrents - des valeurs qui leur correspondent dans les en-ttes HTTP. - Actuellement, APR ne peut utiliser que iconv(3) ; vous pouvez donc - tester facilement vos noms de jeux de caractres en utilisant le - programme iconv(1), de la manire suivante :</p> - - <div class="example"><p><code> - iconv -f valeur-charsetsourceenc -t valeur-charsetdefault - </code></p></div> - - - <h3>Incompatibilit entre le jeu de caractres du - contenu et les rgles de traduction</h3> - - <p>Si les rgles de traduction ne peuvent s'appliquer au contenu, - la traduction peut chouer avec des consquences diverses, comme - :</p> - - <ul> - <li>Le mcanisme de traduction peut renvoyer un mauvais code de - retour, et la connexion sera interrompue.</li> - - <li>Le mcanisme de traduction peut insrer silencieusement des - caractres spciaux (par exemple des points d'interrogation) dans - le tampon de sortie lorsqu'il n'est pas en mesure de traduire le - tampon d'entre.</li> - </ul> - -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="charsetdefault" id="charsetdefault">Directive</a> <a name="CharsetDefault" id="CharsetDefault">CharsetDefault</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Jeu de caractre vers lequel la traduction doit @@ -216,6 +175,47 @@ caractres</td></tr> </div> </div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="problems" id="problems">Problmes courants</a></h2> + + <h3>Noms de jeux de caractres non valides</h3> + + <p>Les noms des jeux de caractres passs en paramtres 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 mcanisme de traduction utilis par + <a class="glossarylink" href="../glossary.html#apr" title="voir glossaire">APR</a> sur le systme o + <code class="module"><a href="../mod/mod_charset_lite.html">mod_charset_lite</a></code> est utilis. Ces noms de jeux de + caractres ne sont pas standardiss, et sont en gnral diffrents + des valeurs qui leur correspondent dans les en-ttes HTTP. + Actuellement, APR ne peut utiliser que iconv(3) ; vous pouvez donc + tester facilement vos noms de jeux de caractres en utilisant le + programme iconv(1), de la manire suivante :</p> + + <div class="example"><p><code> + iconv -f valeur-charsetsourceenc -t valeur-charsetdefault + </code></p></div> + + + <h3>Incompatibilit entre le jeu de caractres du + contenu et les rgles de traduction</h3> + + <p>Si les rgles de traduction ne peuvent s'appliquer au contenu, + la traduction peut chouer avec des consquences diverses, comme + :</p> + + <ul> + <li>Le mcanisme de traduction peut renvoyer un mauvais code de + retour, et la connexion sera interrompue.</li> + + <li>Le mcanisme de traduction peut insrer silencieusement des + caractres spciaux (par exemple des points d'interrogation) dans + le tampon de sortie lorsqu'il n'est pas en mesure de traduire le + tampon d'entre.</li> + </ul> + +</div> </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_charset_lite.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_charset_lite.html.ko.euc-kr b/docs/manual/mod/mod_charset_lite.html.ko.euc-kr index d5baae270f..90214c3f58 100644 --- a/docs/manual/mod/mod_charset_lite.html.ko.euc-kr +++ b/docs/manual/mod/mod_charset_lite.html.ko.euc-kr @@ -66,40 +66,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#problems">Ϲ </a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="problems" id="problems">Ϲ </a></h2> - - <h3>߸ ̸</h3> - - <p><code class="module"><a href="../mod/mod_charset_lite.html">mod_charset_lite</a></code> ϴ ý - ARP <code class="directive"><a href="#charsetsourceenc">CharsetSourceEnc</a></code> - <code class="directive"><a href="#charsetdefault">CharsetDefault</a></code> - Ķ ̸ ó ־ Ѵ. - ̸ ǥȭ ʾҰ, http ϴ - ʴ. APR iconv(3) ϱ, - iconv(1) α Ͽ Ư - ̸ ִ ִ:</p> - - <div class="example"><p><code> - iconv -f charsetsourceenc-value -t charsetdefault-value - </code></p></div> - - - <h3> ȯĢ ٸ</h3> - - <p>ȯĢ Ȳ - ȯ ִ:</p> - - <ul> - <li>ȯ ȯڵ带 ȯϰ - ִ.</li> - - <li>Է¹۸ ȯ Ҷ ¹ۿ Ư - ڸ (, ǥ) ִ.</li> - </ul> - -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="CharsetDefault" id="CharsetDefault">CharsetDefault</a> <a name="charsetdefault" id="charsetdefault">þ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">:</a></th><td>ȯ </td></tr> @@ -192,6 +158,40 @@ <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"> <p><span> : </span><a href="../en/mod/mod_charset_lite.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_dav.html.en b/docs/manual/mod/mod_dav.html.en index 8a89b2c511..3a60361c4d 100644 --- a/docs/manual/mod/mod_dav.html.en +++ b/docs/manual/mod/mod_dav.html.en @@ -60,6 +60,80 @@ <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"><Location "/foo"> + Dav On +</Location></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"><Location "/MSWord"> + DavMinTimeout 600 +</Location></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 @@ -172,80 +246,6 @@ Alias "/php-source" "/home/gstein/php_files" <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"><Location "/foo"> - Dav On -</Location></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"><Location "/MSWord"> - DavMinTimeout 600 -</Location></pre> -</div> - -</div> </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_dav.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_dav.html.fr b/docs/manual/mod/mod_dav.html.fr index 5fa6e53ac2..25e2bd4671 100644 --- a/docs/manual/mod/mod_dav.html.fr +++ b/docs/manual/mod/mod_dav.html.fr @@ -63,6 +63,88 @@ documents via le web (<a href="http://www.webdav.org/">WebDAV</a>)</td></tr> <li><a href="http://www.webdav.org">Ressources WebDAV</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="dav" id="dav">Directive</a> <a name="Dav" id="Dav">Dav</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active les mthodes 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">Dfaut:</a></th><td><code>Dav Off</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire</td></tr> +<tr><th><a href="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 + mthodes HTTP WebDAV pour le conteneur condidr :</p> + + <pre class="prettyprint lang-config"><Location /foo> + Dav On +</Location></pre> + + + <p>La valeur <code>On</code> est en fait un alias vers le + fournisseur par dfaut <code>filesystem</code> implment 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 dsactiver pour ses + sous-conteneurs. Pour un exemple de configuration complet, + reportez-vous la <a href="#example">section prcdente</a>.</p> + + <div class="warning"> + N'activez pas WebDAV tant que votre serveur n'est pas scuris. Si + vous passez outre cette recommandation, tout le monde pourra + enregistrer des fichiers sur votre systme. + </div> + +</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 requtes PROPFIND avec en-tte 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">Dfaut:</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, rpertoire</td></tr> +<tr><th><a href="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 requtes <code>PROPFIND</code> + contenant l'en-tte Depth: Infinity. Par dfaut, ce type de requte + n'est pas autoris, car il peut favoriser les attaques de type Dni + 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>Dure 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">Dfaut:</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, rpertoire</td></tr> +<tr><th><a href="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 spcifier une dure au bout de laquelle le verrou sera + automatiquement supprim par le serveur. Cette valeur ne constitue + qu'une requte, 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> + spcifie, en secondes, la dure minimale de verrouillage renvoyer + au client. Les Rpertoires Web de Microsoft prsentent une dure par + dfaut de 120 secondes ; la directive + <code class="directive">DavMinTimeout</code> permet de dfinir une valeur + suprieure (par exemple 600 secondes), afin de rduire les risques + de perte du verrou par le client suite une surcharge du + rseau.</p> + + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config"><Location /MSWord> + DavMinTimeout 600 +</Location></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 @@ -187,88 +269,6 @@ ForceType text/plain <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 mthodes 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">Dfaut:</a></th><td><code>Dav Off</code></td></tr> -<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire</td></tr> -<tr><th><a href="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 - mthodes HTTP WebDAV pour le conteneur condidr :</p> - - <pre class="prettyprint lang-config"><Location /foo> - Dav On -</Location></pre> - - - <p>La valeur <code>On</code> est en fait un alias vers le - fournisseur par dfaut <code>filesystem</code> implment 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 dsactiver pour ses - sous-conteneurs. Pour un exemple de configuration complet, - reportez-vous la <a href="#example">section prcdente</a>.</p> - - <div class="warning"> - N'activez pas WebDAV tant que votre serveur n'est pas scuris. Si - vous passez outre cette recommandation, tout le monde pourra - enregistrer des fichiers sur votre systme. - </div> - -</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 requtes PROPFIND avec en-tte 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">Dfaut:</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, rpertoire</td></tr> -<tr><th><a href="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 requtes <code>PROPFIND</code> - contenant l'en-tte Depth: Infinity. Par dfaut, ce type de requte - n'est pas autoris, car il peut favoriser les attaques de type Dni - 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>Dure 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">Dfaut:</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, rpertoire</td></tr> -<tr><th><a href="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 spcifier une dure au bout de laquelle le verrou sera - automatiquement supprim par le serveur. Cette valeur ne constitue - qu'une requte, 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> - spcifie, en secondes, la dure minimale de verrouillage renvoyer - au client. Les Rpertoires Web de Microsoft prsentent une dure par - dfaut de 120 secondes ; la directive - <code class="directive">DavMinTimeout</code> permet de dfinir une valeur - suprieure (par exemple 600 secondes), afin de rduire les risques - de perte du verrou par le client suite une surcharge du - rseau.</p> - - <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config"><Location /MSWord> - DavMinTimeout 600 -</Location></pre> -</div> - -</div> </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_dav.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_dav.html.ja.utf8 b/docs/manual/mod/mod_dav.html.ja.utf8 index d594b1a19d..636e67c22d 100644 --- a/docs/manual/mod/mod_dav.html.ja.utf8 +++ b/docs/manual/mod/mod_dav.html.ja.utf8 @@ -66,6 +66,86 @@ <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"><Location /foo> + Dav On +</Location></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"><Location /MSWord> + DavMinTimeout 600 +</Location></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> @@ -176,86 +256,6 @@ Alias /php-source /home/gstein/php_files <code>http://example.com/php-source</code> を DAV クライアントによる が操作のために使うことができます。</p> </div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="directive-section"><h2><a name="Dav" id="Dav">Dav</a> <a name="dav" id="dav">ディレクティブ</a></h2> -<table class="directive"> -<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>WebDAV HTTP メソッドを有効にします</td></tr> -<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>Dav On|Off|<var>provider-name</var></code></td></tr> -<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>Dav Off</code></td></tr> -<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>ディレクトリ</td></tr> -<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr> -<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_dav</td></tr> -</table> - <p>与えられたコンテナで WebDAV HTTP メソッドが使えるようにするには - 次のようにします。</p> - - <pre class="prettyprint lang-config"><Location /foo> - Dav On -</Location></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"><Location /MSWord> - DavMinTimeout 600 -</Location></pre> -</div> - -</div> </div> <div class="bottomlang"> <p><span>翻訳済み言語: </span><a href="../en/mod/mod_dav.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_dav.html.ko.euc-kr b/docs/manual/mod/mod_dav.html.ko.euc-kr index 4a77c6245c..160f41561d 100644 --- a/docs/manual/mod/mod_dav.html.ko.euc-kr +++ b/docs/manual/mod/mod_dav.html.ko.euc-kr @@ -63,6 +63,85 @@ <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> + <Location /foo><br /> + <span class="indent"> + Dav On<br /> + </span> + </Location> + </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> + <Location /MSWord><br /> + <span class="indent"> + DavMinTimeout 600<br /> + </span> + </Location> + </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> @@ -176,85 +255,6 @@ Alias /php-source /home/gstein/php_files<br /> <code>http://example.com/php-source</code>δ DAV Ŭ̾Ʈ ũƮ ִ.</p> </div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="directive-section"><h2><a name="Dav" id="Dav">Dav</a> <a name="dav" id="dav">þ</a></h2> -<table class="directive"> -<tr><th><a href="directive-dict.html#Description">:</a></th><td>WebDAV HTTP 带 Ѵ</td></tr> -<tr><th><a href="directive-dict.html#Syntax">:</a></th><td><code>Dav On|Off|<var>provider-name</var></code></td></tr> -<tr><th><a href="directive-dict.html#Default">⺻:</a></th><td><code>Dav Off</code></td></tr> -<tr><th><a href="directive-dict.html#Context">:</a></th><td>directory</td></tr> -<tr><th><a href="directive-dict.html#Status">:</a></th><td>Extension</td></tr> -<tr><th><a href="directive-dict.html#Module">:</a></th><td>mod_dav</td></tr> -</table> - <p> ġ WebDAV HTTP 带 Ϸ - <code class="directive">Dav</code> þ Ѵ:</p> - - <div class="example"><p><code> - <Location /foo><br /> - <span class="indent"> - Dav On<br /> - </span> - </Location> - </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> - <Location /MSWord><br /> - <span class="indent"> - DavMinTimeout 600<br /> - </span> - </Location> - </code></p></div> - -</div> </div> <div class="bottomlang"> <p><span> : </span><a href="../en/mod/mod_dav.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_dav_fs.html.en b/docs/manual/mod/mod_dav_fs.html.en index e2219841fb..9b7e3f7c9a 100644 --- a/docs/manual/mod/mod_dav_fs.html.en +++ b/docs/manual/mod/mod_dav_fs.html.en @@ -56,7 +56,6 @@ <ul class="seealso"> <li><code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="DavLockDB" id="DavLockDB">DavLockDB</a> <a name="davlockdb" id="davlockdb">Directive</a></h2> <table class="directive"> @@ -88,6 +87,7 @@ </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_dav_fs.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_dav_fs.html.fr b/docs/manual/mod/mod_dav_fs.html.fr index 3c462b94ca..fe68e94f43 100644 --- a/docs/manual/mod/mod_dav_fs.html.fr +++ b/docs/manual/mod/mod_dav_fs.html.fr @@ -58,7 +58,6 @@ <ul class="seealso"> <li><code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">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"> @@ -94,6 +93,7 @@ </div> + </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_dav_fs.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_dav_fs.html.ja.utf8 b/docs/manual/mod/mod_dav_fs.html.ja.utf8 index 6f36f29526..2ff1247c90 100644 --- a/docs/manual/mod/mod_dav_fs.html.ja.utf8 +++ b/docs/manual/mod/mod_dav_fs.html.ja.utf8 @@ -63,7 +63,6 @@ <ul class="seealso"> <li><code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="DavLockDB" id="DavLockDB">DavLockDB</a> <a name="davlockdb" id="davlockdb">ディレクティブ</a></h2> <table class="directive"> @@ -86,6 +85,7 @@ </code></p></div> </div> + </div> <div class="bottomlang"> <p><span>翻訳済み言語: </span><a href="../en/mod/mod_dav_fs.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_dav_fs.html.ko.euc-kr b/docs/manual/mod/mod_dav_fs.html.ko.euc-kr index b2d540fb43..12457389b7 100644 --- a/docs/manual/mod/mod_dav_fs.html.ko.euc-kr +++ b/docs/manual/mod/mod_dav_fs.html.ko.euc-kr @@ -58,7 +58,6 @@ <ul class="seealso"> <li><code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="DavLockDB" id="DavLockDB">DavLockDB</a> <a name="davlockdb" id="davlockdb">þ</a></h2> <table class="directive"> @@ -91,6 +90,7 @@ </div> + </div> <div class="bottomlang"> <p><span> : </span><a href="../en/mod/mod_dav_fs.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_dav_lock.html.en b/docs/manual/mod/mod_dav_lock.html.en index 31e3c4063d..e6fa6defb8 100644 --- a/docs/manual/mod/mod_dav_lock.html.en +++ b/docs/manual/mod/mod_dav_lock.html.en @@ -63,7 +63,6 @@ <ul class="seealso"> <li><code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">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"> @@ -93,6 +92,7 @@ </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_dav_lock.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_dav_lock.html.fr b/docs/manual/mod/mod_dav_lock.html.fr index 55b97ce63b..4546d0dd3e 100644 --- a/docs/manual/mod/mod_dav_lock.html.fr +++ b/docs/manual/mod/mod_dav_lock.html.fr @@ -68,7 +68,6 @@ <ul class="seealso"> <li><code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="davgenericlockdb" id="davgenericlockdb">Directive</a> <a name="DavGenericLockDB" id="DavGenericLockDB">DavGenericLockDB</a></h2> <table class="directive"> @@ -102,6 +101,7 @@ </div> + </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_dav_lock.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_dav_lock.html.ja.utf8 b/docs/manual/mod/mod_dav_lock.html.ja.utf8 index 1e87181265..4fc1e706a5 100644 --- a/docs/manual/mod/mod_dav_lock.html.ja.utf8 +++ b/docs/manual/mod/mod_dav_lock.html.ja.utf8 @@ -66,7 +66,6 @@ <ul class="seealso"> <li><code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="DavGenericLockDB" id="DavGenericLockDB">DavGenericLockDB</a> <a name="davgenericlockdb" id="davgenericlockdb">ディレクティブ</a></h2> <table class="directive"> @@ -97,6 +96,7 @@ </div> + </div> <div class="bottomlang"> <p><span>翻訳済み言語: </span><a href="../en/mod/mod_dav_lock.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_dbd.html.en b/docs/manual/mod/mod_dbd.html.en index 4cb913f729..05eefa48a5 100644 --- a/docs/manual/mod/mod_dbd.html.en +++ b/docs/manual/mod/mod_dbd.html.en @@ -66,120 +66,6 @@ <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> @@ -337,6 +223,120 @@ APR_DECLARE_OPTIONAL_FN(void, ap_dbd_prepare, (server_rec*, const char*, const c driver in apr_dbd_mysql.so.</p> </div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="pooling" id="pooling">Connection Pooling</a></h2> + <p>This module manages database connections, in a manner + optimised for the platform. On non-threaded platforms, + it provides a persistent connection in the manner of + classic LAMP (Linux, Apache, Mysql, Perl/PHP/Python). + On threaded platform, it provides an altogether more + scalable and efficient <em>connection pool</em>, as + described in <a href="http://www.apachetutor.org/dev/reslist">this + article at ApacheTutor</a>. Note that <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> + supersedes the modules presented in that article.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="API" id="API">Apache DBD API</a></h2> + <p><code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> exports five functions for other modules + to use. The API is as follows:</p> + +<pre class="prettyprint lang-c">typedef struct { + apr_dbd_t *handle; + apr_dbd_driver_t *driver; + apr_hash_t *prepared; +} ap_dbd_t; + +/* Export functions to access the database */ + +/* acquire a connection that MUST be explicitly closed. + * Returns NULL on error + */ +AP_DECLARE(ap_dbd_t*) ap_dbd_open(apr_pool_t*, server_rec*); + +/* release a connection acquired with ap_dbd_open */ +AP_DECLARE(void) ap_dbd_close(server_rec*, ap_dbd_t*); + +/* acquire a connection that will have the lifetime of a request + * and MUST NOT be explicitly closed. Return NULL on error. + * This is the preferred function for most applications. + */ +AP_DECLARE(ap_dbd_t*) ap_dbd_acquire(request_rec*); + +/* acquire a connection that will have the lifetime of a connection + * and MUST NOT be explicitly closed. Return NULL on error. + */ +AP_DECLARE(ap_dbd_t*) ap_dbd_cacquire(conn_rec*); + +/* Prepare a statement for use by a client module */ +AP_DECLARE(void) ap_dbd_prepare(server_rec*, const char*, const char*); + +/* Also export them as optional functions for modules that prefer it */ +APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_open, (apr_pool_t*, server_rec*)); +APR_DECLARE_OPTIONAL_FN(void, ap_dbd_close, (server_rec*, ap_dbd_t*)); +APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_acquire, (request_rec*)); +APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_cacquire, (conn_rec*)); +APR_DECLARE_OPTIONAL_FN(void, ap_dbd_prepare, (server_rec*, const char*, const char*));</pre> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="prepared" id="prepared">SQL Prepared Statements</a></h2> + <p><code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> supports SQL prepared statements on behalf + of modules that may wish to use them. Each prepared statement + must be assigned a name (label), and they are stored in a hash: + the <code>prepared</code> field of an <code>ap_dbd_t</code>. + Hash entries are of type <code>apr_dbd_prepared_t</code> + and can be used in any of the apr_dbd prepared statement + SQL query or select commands.</p> + + <p>It is up to dbd user modules to use the prepared statements + and document what statements can be specified in httpd.conf, + or to provide their own directives and use <code>ap_dbd_prepare</code>.</p> + + <div class="warning"><h3>Caveat</h3> + When using prepared statements with a MySQL database, it is preferred to set + <code>reconnect</code> to 0 in the connection string as to avoid errors that + arise from the MySQL client reconnecting without properly resetting the + prepared statements. If set to 1, any broken connections will be attempted + fixed, but as mod_dbd is not informed, the prepared statements will be invalidated. + </div> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="security" id="security">SECURITY WARNING</a></h2> + + <p>Any web/database application needs to secure itself against SQL + injection attacks. In most cases, Apache DBD is safe, because + applications use prepared statements, and untrusted inputs are + only ever used as data. Of course, if you use it via third-party + modules, you should ascertain what precautions they may require.</p> + <p>However, the <var>FreeTDS</var> driver is inherently + <strong>unsafe</strong>. The underlying library doesn't support + prepared statements, so the driver emulates them, and the + untrusted input is merged into the SQL statement.</p> + <p>It can be made safe by <em>untainting</em> all inputs: + a process inspired by Perl's taint checking. Each input + is matched against a regexp, and only the match is used, + according to the Perl idiom:</p> + <div class="example"><pre><code> $untrusted =~ /([a-z]+)/; + $trusted = $1;</code></pre></div> + <p>To use this, the untainting regexps must be included in the + prepared statements configured. The regexp follows immediately + after the % in the prepared statement, and is enclosed in + curly brackets {}. For example, if your application expects + alphanumeric input, you can use:</p> + <div class="example"><p><code> + <code>"SELECT foo FROM bar WHERE input = %s"</code> + </code></p></div> + <p>with other drivers, and suffer nothing worse than a failed query. + But with FreeTDS you'd need:</p> + <div class="example"><p><code> + <code>"SELECT foo FROM bar WHERE input = %{([A-Za-z0-9]+)}s"</code> + </code></p></div> + <p>Now anything that doesn't match the regexp's $1 match is + discarded, so the statement is safe.</p> + <p>An alternative to this may be the third-party ODBC driver, + which offers the security of genuine prepared statements.</p> +</div> </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_dbd.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_dbd.html.fr b/docs/manual/mod/mod_dbd.html.fr index 4163059dda..a100ce2b7a 100644 --- a/docs/manual/mod/mod_dbd.html.fr +++ b/docs/manual/mod/mod_dbd.html.fr @@ -68,133 +68,6 @@ 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 gre de manire optimise en fonction de la plate-forme - les connexions aux bases de donnes. Sur les plates-formes non - threades, il maintient une connexion persistente la manire d'un - LAMP classique (Linux, Apache, Mysql, Perl/PHP/Python). Sur les - plates-formes threades, il maintient un <em>groupe de - connexions</em> la fois plus volutif et plus efficace, comme - dcrit 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 prsents 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 prsente 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 exportes pour accder la base de donnes */ - -/* ouvre une connexion qui DEVRA tre explicitement ferme. - * 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 dure de vie de la requte et qui - * NE DEVRA PAS tre explicitement ferme. Renvoie NULL en cas - * d'erreur. C'est la fonction recommande pour la plupart des - * applications. - */ -AP_DECLARE(ap_dbd_t*) ap_dbd_acquire(request_rec*); - -/* acquiert une connexion qui aura la dure de vie d'une connexion et - * qui NE DEVRA PAS tre explicitement ferme. Renvoie NULL en cas - * d'erreur. - */ -AP_DECLARE(ap_dbd_t*) ap_dbd_cacquire(conn_rec*); - -/* Prpare une requte 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 - * pfreraient 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">Requtes SQL prpares</a></h2> - <p><code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> supporte les requtes SQL prpares pour - le compte des modules qui pourraient les utiliser. Chaque requte - prpare doit possder un nom (tiquette), et est stocke dans un - condens (hash) : les condenss sont du type - <code>apr_dbd_prepared_t</code> et s'utilisent dans toute requte - SQL ou commande select prpare par apr_dbd.</p> - - <p>Il est du ressort des modules utilisateurs de dbd d'utiliser les - requtes prpares et de prciser quelles requtes doivent tre - spcifies 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 requtes prpares avec des bases de - donnes MySQL, il est prfrable de dfinir - <code>reconnect</code> 0 dans la chane de connexion, afin - d'viter des erreurs provoques par un client MySQL qui se - reconnecterait sans rinitialiser correctement les requtes - prpares. Si <code>reconnect</code> est dfini 1, toute - connexion dfectueuse sera sense tre rpare, mais comme - mod_dbd n'en est pas inform, les requtes prpares seront - invalides. - </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 donnes doit se - protger elle-mme contre les attaques de type injection SQL. Dans - la plupart des cas Apache DBD est sr, car les applications - utilisent des requtes prpares, et les entres non sres ne seront - utilises qu' titre de donnes. Bien entendu, si vous l'utilisez - via un module tiers, vous devez tre au fait des prcautions - prendre.</p> - <p>Cependant, le pilote <var>FreeTDS</var> est <strong>non - sr</strong> de par sa nature mme. Comme la bibliothque - sous-jacente ne supporte pas les requtes prpares, le pilote en - effectue une mulation, et les entres non sres sont fusionnes - avec la requte SQL.</p> - <p>Il peut tre scuris en <em>dcontaminant</em> toutes les - entres : un processus inspir de la recherche de contaminations de - Perl (NdT : <code>taint checking</code>). Chaque entre est compare - une expression rationnelle, et - seules les entres qui correspondent sont utilises, 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 - dcontamination doivent tre incluses dans les requtes prpares. - L'expression rationnelle doit se situer immdiatement aprs le - caractre % dans la requte prpare, et doit tre entoure - d'accolades {}. Par exemple, si votre application attend une entre - alphanumrique, 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 requte - 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 requte est ainsi dsormais sre.</p> - <p>Alternativement, vous pouvez utiliser le pilote ODBC tiers, qui - offre la scurit des requtes prpares 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>Dure de vie des connexions inactives</td></tr> @@ -364,6 +237,133 @@ donnes</td></tr> dans la bibliothque 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 gre de manire optimise en fonction de la plate-forme + les connexions aux bases de donnes. Sur les plates-formes non + threades, il maintient une connexion persistente la manire d'un + LAMP classique (Linux, Apache, Mysql, Perl/PHP/Python). Sur les + plates-formes threades, il maintient un <em>groupe de + connexions</em> la fois plus volutif et plus efficace, comme + dcrit 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 prsents 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 prsente 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 exportes pour accder la base de donnes */ + +/* ouvre une connexion qui DEVRA tre explicitement ferme. + * 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 dure de vie de la requte et qui + * NE DEVRA PAS tre explicitement ferme. Renvoie NULL en cas + * d'erreur. C'est la fonction recommande pour la plupart des + * applications. + */ +AP_DECLARE(ap_dbd_t*) ap_dbd_acquire(request_rec*); + +/* acquiert une connexion qui aura la dure de vie d'une connexion et + * qui NE DEVRA PAS tre explicitement ferme. Renvoie NULL en cas + * d'erreur. + */ +AP_DECLARE(ap_dbd_t*) ap_dbd_cacquire(conn_rec*); + +/* Prpare une requte 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 + * pfreraient 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">Requtes SQL prpares</a></h2> + <p><code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> supporte les requtes SQL prpares pour + le compte des modules qui pourraient les utiliser. Chaque requte + prpare doit possder un nom (tiquette), et est stocke dans un + condens (hash) : les condenss sont du type + <code>apr_dbd_prepared_t</code> et s'utilisent dans toute requte + SQL ou commande select prpare par apr_dbd.</p> + + <p>Il est du ressort des modules utilisateurs de dbd d'utiliser les + requtes prpares et de prciser quelles requtes doivent tre + spcifies 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 requtes prpares avec des bases de + donnes MySQL, il est prfrable de dfinir + <code>reconnect</code> 0 dans la chane de connexion, afin + d'viter des erreurs provoques par un client MySQL qui se + reconnecterait sans rinitialiser correctement les requtes + prpares. Si <code>reconnect</code> est dfini 1, toute + connexion dfectueuse sera sense tre rpare, mais comme + mod_dbd n'en est pas inform, les requtes prpares seront + invalides. + </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 donnes doit se + protger elle-mme contre les attaques de type injection SQL. Dans + la plupart des cas Apache DBD est sr, car les applications + utilisent des requtes prpares, et les entres non sres ne seront + utilises qu' titre de donnes. Bien entendu, si vous l'utilisez + via un module tiers, vous devez tre au fait des prcautions + prendre.</p> + <p>Cependant, le pilote <var>FreeTDS</var> est <strong>non + sr</strong> de par sa nature mme. Comme la bibliothque + sous-jacente ne supporte pas les requtes prpares, le pilote en + effectue une mulation, et les entres non sres sont fusionnes + avec la requte SQL.</p> + <p>Il peut tre scuris en <em>dcontaminant</em> toutes les + entres : un processus inspir de la recherche de contaminations de + Perl (NdT : <code>taint checking</code>). Chaque entre est compare + une expression rationnelle, et + seules les entres qui correspondent sont utilises, 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 + dcontamination doivent tre incluses dans les requtes prpares. + L'expression rationnelle doit se situer immdiatement aprs le + caractre % dans la requte prpare, et doit tre entoure + d'accolades {}. Par exemple, si votre application attend une entre + alphanumrique, 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 requte + 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 requte est ainsi dsormais sre.</p> + <p>Alternativement, vous pouvez utiliser le pilote ODBC tiers, qui + offre la scurit des requtes prpares 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"> en </a> | diff --git a/docs/manual/mod/mod_deflate.html.en b/docs/manual/mod/mod_deflate.html.en index 14579885c5..446f44097e 100644 --- a/docs/manual/mod/mod_deflate.html.en +++ b/docs/manual/mod/mod_deflate.html.en @@ -65,172 +65,6 @@ content</a></li> <li><a href="../filter.html">Filters</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="recommended" id="recommended">Sample Configurations</a></h2> - <div class="warning"><h3>Compression and TLS</h3> - <p>Some web applications are vulnerable to an information disclosure - attack when a TLS connection carries deflate compressed data. For more - information, review the details of the "BREACH" family of attacks.</p> - </div> - <p>This is a simple configuration that compresses common text-based content types.</p> - - <div class="example"><h3>Compress only a few types</h3><pre class="prettyprint lang-config">AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript</pre> -</div> - -</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="enable" id="enable">Enabling Compression</a></h2> - <div class="warning"><h3>Compression and TLS</h3> - <p>Some web applications are vulnerable to an information disclosure - attack when a TLS connection carries deflate compressed data. For more - information, review the details of the "BREACH" family of attacks.</p> - </div> - - <h3><a name="output" id="output">Output Compression</a></h3> - <p>Compression is implemented by the <code>DEFLATE</code> - <a href="../filter.html">filter</a>. The following directive - will enable compression for documents in the container where it - is placed:</p> - - <pre class="prettyprint lang-config">SetOutputFilter DEFLATE -SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip</pre> - - - <p>If you want to restrict the compression to particular MIME types - in general, you may use the <code class="directive"><a href="../mod/mod_filter.html#addoutputfilterbytype">AddOutputFilterByType</a></code> directive. Here is an example of - enabling compression only for the html files of the Apache - documentation:</p> - - <pre class="prettyprint lang-config"><Directory "/your-server-root/manual"> - AddOutputFilterByType DEFLATE text/html -</Directory></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"><Location /dav-area> - ProxyPass http://example.com/ - SetOutputFilter INFLATE -</Location></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"><Location /dav-area> - SetInputFilter DEFLATE -</Location></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"><IfModule mod_headers.c> - # 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] - - - <FilesMatch "(\.js\.gz|\.css\.gz)$"> - # Serve correct encoding type. - Header append Content-Encoding gzip - - # Force proxies to cache gzipped & - # non-gzipped css/js files separately. - Header append Vary Accept-Encoding - </FilesMatch> -</IfModule></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> @@ -429,6 +263,172 @@ CustomLog logs/deflate_log deflate</pre> 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"><Directory "/your-server-root/manual"> + AddOutputFilterByType DEFLATE text/html +</Directory></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"><Location /dav-area> + ProxyPass http://example.com/ + SetOutputFilter INFLATE +</Location></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"><Location /dav-area> + SetInputFilter DEFLATE +</Location></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"><IfModule mod_headers.c> + # 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] + + + <FilesMatch "(\.js\.gz|\.css\.gz)$"> + # Serve correct encoding type. + Header append Content-Encoding gzip + + # Force proxies to cache gzipped & + # non-gzipped css/js files separately. + Header append Vary Accept-Encoding + </FilesMatch> +</IfModule></pre> + + +</div> </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_deflate.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_deflate.html.fr b/docs/manual/mod/mod_deflate.html.fr index b317ea0eb1..14c4b9a7ca 100644 --- a/docs/manual/mod/mod_deflate.html.fr +++ b/docs/manual/mod/mod_deflate.html.fr @@ -64,147 +64,6 @@ client</td></tr> <li><a href="../filter.html">Les filtres</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="recommended" id="recommended">Exemples de configurations</a></h2> - <div class="warning"><h3>Compression et TLS</h3> - <p>Certaines applications web sont vulnrables une attaque pour - vol d'informations lorsqu'une connexion TLS transporte des - donnes compresses par deflate. Pour plus de dtails, - 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 vulnrables une attaque pour - vol d'informations lorsqu'une connexion TLS transporte des - donnes compresses par deflate. Pour plus de dtails, - 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 implmente 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 place :</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 active que pour les fichiers html de la - documentation d'Apache :</p> - - <pre class="prettyprint lang-config"><Directory "/your-server-root/manual"> - AddOutputFilterByType DEFLATE text/html -</Directory></pre> - - - <div class="note"><h3>Note</h3> - Le filtre <code>DEFLATE</code> est toujours insr aprs les - filtres RESOURCE comme PHP ou SSI. Il n'affecte jamais les - sous-requtes internes. - </div> - <div class="note"><h3>Note</h3> - La variable d'environnement <code>force-gzip</code>, dfinie - 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 accepts, et - d'envoyer sans condition une sortie comprime. - </div> - - - <h3><a name="inflate" id="inflate">Dcompression 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 dcomprimer un corps de rponse comprim par gzip. - Pour activer cette fonctionnalit, vous devez insrer le filtre - <code>INFLATE</code> dans la chane 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"><Location /dav-area> - ProxyPass http://example.com/ - SetOutputFilter INFLATE -</Location></pre> - - - <p>Dans cet exemple, les sorties comprimes par gzip en - provenance de example.com seront dcomprimes afin de pouvoir - tre ventuellement traites par d'autres filtres. - </p> - - - <h3><a name="input" id="input">Dcompression de l'entre</a></h3> - <p>Le module <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> fournit galement un filtre - permettant de dcomprimer un corps de requte comprim par gzip. - Pour activer cette fonctionnalit, vous devez insrer le filtre - <code>DEFLATE</code> dans la chane de filtrage en entre 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"><Location /dav-area> - SetInputFilter DEFLATE -</Location></pre> - - - <p>Dsormais, si une requte contient un en-tte - <code>Content-Encoding: gzip</code>, son corps sera - automatiquement dcomprim. Peu de navigateurs sont actuellement - en mesure de comprimer les corps de requtes. Cependant, - certaines applications spcialises supportent les requtes - comprimes, comme par exemple certains clients <a href="http://www.webdav.org">WebDAV</a>.</p> - - <div class="warning"><h3>Note propos de l'en-tte - <code>Content-Length</code></h3> - <p>Si vous valuez vous-mme la taille du corps de requte, - <em>ne faites pas confiance l'en-tte - <code>Content-Length</code>!</em> L'en-tte - Content-Length indique la longueur des donnes en provenance du - client, et <em>non</em> la quantit d'octets que reprsente le - flux de donnes dcompress.</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-tte de - rponse HTTP <code>Vary: Accept-Encoding</code> pour avertir les - mandataires qu'une rponse enregistre dans le cache ne doit tre - envoye qu'aux clients qui ont envoy l'en-tte de requte - <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'interprter.</p> - - <p>Si vous avez dfini des exclusions spcifiques dpendant, par - exemple, de l'en-tte <code>User-Agent</code>, vous devez - ajouter manuellement des donnes l'en-tte <code>Vary</code> afin - d'informer les mandataires des restrictions supplmentaires. Par - exemple, dans la configuration classique o l'addition du filtre - <code>DEFLATE</code> dpend du contenu de l'en-tte - <code>User-Agent</code>, vous devez spcifier :</p> - - <pre class="prettyprint lang-config">Header append Vary User-Agent</pre> - - - <p>Si votre dcision de comprimer le contenu dpend d'autres - informations que celles contenues dans les en-ttes de la requte - (par exemple la version HTTP), vous devez attribuer l'en-tte - <code>Vary</code> la valeur <code>*</code>, ce qui permet d'empcher - 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-tte sortant ETag doit tre modifi au cours @@ -426,6 +285,147 @@ compression</td></tr> 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 vulnrables une attaque pour + vol d'informations lorsqu'une connexion TLS transporte des + donnes compresses par deflate. Pour plus de dtails, + 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 vulnrables une attaque pour + vol d'informations lorsqu'une connexion TLS transporte des + donnes compresses par deflate. Pour plus de dtails, + 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 implmente 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 place :</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 active que pour les fichiers html de la + documentation d'Apache :</p> + + <pre class="prettyprint lang-config"><Directory "/your-server-root/manual"> + AddOutputFilterByType DEFLATE text/html +</Directory></pre> + + + <div class="note"><h3>Note</h3> + Le filtre <code>DEFLATE</code> est toujours insr aprs les + filtres RESOURCE comme PHP ou SSI. Il n'affecte jamais les + sous-requtes internes. + </div> + <div class="note"><h3>Note</h3> + La variable d'environnement <code>force-gzip</code>, dfinie + 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 accepts, et + d'envoyer sans condition une sortie comprime. + </div> + + + <h3><a name="inflate" id="inflate">Dcompression 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 dcomprimer un corps de rponse comprim par gzip. + Pour activer cette fonctionnalit, vous devez insrer le filtre + <code>INFLATE</code> dans la chane 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"><Location /dav-area> + ProxyPass http://example.com/ + SetOutputFilter INFLATE +</Location></pre> + + + <p>Dans cet exemple, les sorties comprimes par gzip en + provenance de example.com seront dcomprimes afin de pouvoir + tre ventuellement traites par d'autres filtres. + </p> + + + <h3><a name="input" id="input">Dcompression de l'entre</a></h3> + <p>Le module <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> fournit galement un filtre + permettant de dcomprimer un corps de requte comprim par gzip. + Pour activer cette fonctionnalit, vous devez insrer le filtre + <code>DEFLATE</code> dans la chane de filtrage en entre 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"><Location /dav-area> + SetInputFilter DEFLATE +</Location></pre> + + + <p>Dsormais, si une requte contient un en-tte + <code>Content-Encoding: gzip</code>, son corps sera + automatiquement dcomprim. Peu de navigateurs sont actuellement + en mesure de comprimer les corps de requtes. Cependant, + certaines applications spcialises supportent les requtes + comprimes, comme par exemple certains clients <a href="http://www.webdav.org">WebDAV</a>.</p> + + <div class="warning"><h3>Note propos de l'en-tte + <code>Content-Length</code></h3> + <p>Si vous valuez vous-mme la taille du corps de requte, + <em>ne faites pas confiance l'en-tte + <code>Content-Length</code>!</em> L'en-tte + Content-Length indique la longueur des donnes en provenance du + client, et <em>non</em> la quantit d'octets que reprsente le + flux de donnes dcompress.</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-tte de + rponse HTTP <code>Vary: Accept-Encoding</code> pour avertir les + mandataires qu'une rponse enregistre dans le cache ne doit tre + envoye qu'aux clients qui ont envoy l'en-tte de requte + <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'interprter.</p> + + <p>Si vous avez dfini des exclusions spcifiques dpendant, par + exemple, de l'en-tte <code>User-Agent</code>, vous devez + ajouter manuellement des donnes l'en-tte <code>Vary</code> afin + d'informer les mandataires des restrictions supplmentaires. Par + exemple, dans la configuration classique o l'addition du filtre + <code>DEFLATE</code> dpend du contenu de l'en-tte + <code>User-Agent</code>, vous devez spcifier :</p> + + <pre class="prettyprint lang-config">Header append Vary User-Agent</pre> + + + <p>Si votre dcision de comprimer le contenu dpend d'autres + informations que celles contenues dans les en-ttes de la requte + (par exemple la version HTTP), vous devez attribuer l'en-tte + <code>Vary</code> la valeur <code>*</code>, ce qui permet d'empcher + 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"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_deflate.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_deflate.html.ja.utf8 b/docs/manual/mod/mod_deflate.html.ja.utf8 index f7cfab9923..d7ef309010 100644 --- a/docs/manual/mod/mod_deflate.html.ja.utf8 +++ b/docs/manual/mod/mod_deflate.html.ja.utf8 @@ -65,6 +65,178 @@ <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> @@ -259,178 +431,6 @@ 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"> en </a> | diff --git a/docs/manual/mod/mod_deflate.html.ko.euc-kr b/docs/manual/mod/mod_deflate.html.ko.euc-kr index 4aa3a5fc29..f17eacda4d 100644 --- a/docs/manual/mod/mod_deflate.html.ko.euc-kr +++ b/docs/manual/mod/mod_deflate.html.ko.euc-kr @@ -63,6 +63,172 @@ <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> @@ -251,172 +417,6 @@ 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"> en </a> | diff --git a/docs/manual/mod/mod_dialup.html.en b/docs/manual/mod/mod_dialup.html.en index 358cfcffb2..d58e305524 100644 --- a/docs/manual/mod/mod_dialup.html.en +++ b/docs/manual/mod/mod_dialup.html.en @@ -53,7 +53,6 @@ once the timer hits. From there the handler can continue to send data to the cl <li><img alt="" src="../images/down.gif" /> <a href="#modemstandard">ModemStandard</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="ModemStandard" id="ModemStandard">ModemStandard</a> <a name="modemstandard" id="modemstandard">Directive</a></h2> <table class="directive"> @@ -72,6 +71,7 @@ once the timer hits. From there the handler can continue to send data to the cl </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_dialup.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_dialup.html.fr b/docs/manual/mod/mod_dialup.html.fr index 2011124df8..5d974fbf03 100644 --- a/docs/manual/mod/mod_dialup.html.fr +++ b/docs/manual/mod/mod_dialup.html.fr @@ -58,7 +58,6 @@ client.</p> <li><img alt="" src="../images/down.gif" /> <a href="#modemstandard">ModemStandard</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="modemstandard" id="modemstandard">Directive</a> <a name="ModemStandard" id="ModemStandard">ModemStandard</a></h2> <table class="directive"> @@ -78,6 +77,7 @@ souhaitez simuler.</p> </div> + </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_dialup.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_dir.html.en b/docs/manual/mod/mod_dir.html.en index 138d1f4d54..bfe3bbc9fa 100644 --- a/docs/manual/mod/mod_dir.html.en +++ b/docs/manual/mod/mod_dir.html.en @@ -68,7 +68,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#fallbackresource">FallbackResource</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="DirectoryCheckHandler" id="DirectoryCheckHandler">DirectoryCheckHandler</a> <a name="directorycheckhandler" id="directorycheckhandler">Directive</a></h2> <table class="directive"> @@ -306,6 +305,7 @@ later</td></tr> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_dir.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_dir.html.fr b/docs/manual/mod/mod_dir.html.fr index 8b5d3f14ba..92dd8b3af4 100644 --- a/docs/manual/mod/mod_dir.html.fr +++ b/docs/manual/mod/mod_dir.html.fr @@ -69,7 +69,6 @@ de rpertoire</td></tr> <li><img alt="" src="../images/down.gif" /> <a href="#fallbackresource">FallbackResource</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="directorycheckhandler" id="directorycheckhandler">Directive</a> <a name="DirectoryCheckHandler" id="DirectoryCheckHandler">DirectoryCheckHandler</a></h2> <table class="directive"> @@ -342,6 +341,7 @@ 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"> en </a> | diff --git a/docs/manual/mod/mod_dir.html.ja.utf8 b/docs/manual/mod/mod_dir.html.ja.utf8 index 41dbde181a..59c1040904 100644 --- a/docs/manual/mod/mod_dir.html.ja.utf8 +++ b/docs/manual/mod/mod_dir.html.ja.utf8 @@ -76,7 +76,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#fallbackresource">FallbackResource</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="DirectoryCheckHandler" id="DirectoryCheckHandler">DirectoryCheckHandler</a> <a name="directorycheckhandler" id="directorycheckhandler">ディレクティブ</a></h2> <table class="directive"> @@ -223,6 +222,7 @@ act as if "DirectoryCheckHandler ON" was specified.</td></tr> <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_dir</td></tr> </table><p>Documentation not yet translated. Please see English version of document.</p> </div> + </div> <div class="bottomlang"> <p><span>翻訳済み言語: </span><a href="../en/mod/mod_dir.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_dir.html.ko.euc-kr b/docs/manual/mod/mod_dir.html.ko.euc-kr index 9eadb0c13a..c9cc4324b6 100644 --- a/docs/manual/mod/mod_dir.html.ko.euc-kr +++ b/docs/manual/mod/mod_dir.html.ko.euc-kr @@ -69,7 +69,6 @@ index Ѵ</td></tr> <li><img alt="" src="../images/down.gif" /> <a href="#fallbackresource">FallbackResource</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="DirectoryCheckHandler" id="DirectoryCheckHandler">DirectoryCheckHandler</a> <a name="directorycheckhandler" id="directorycheckhandler">þ</a></h2> <table class="directive"> @@ -208,6 +207,7 @@ act as if "DirectoryCheckHandler ON" was specified.</td></tr> <tr><th><a href="directive-dict.html#Module">:</a></th><td>mod_dir</td></tr> </table><p>Documentation not yet translated. Please see English version of document.</p> </div> + </div> <div class="bottomlang"> <p><span> : </span><a href="../en/mod/mod_dir.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_dir.html.tr.utf8 b/docs/manual/mod/mod_dir.html.tr.utf8 index 6471f0cc60..bcf87a2b1b 100644 --- a/docs/manual/mod/mod_dir.html.tr.utf8 +++ b/docs/manual/mod/mod_dir.html.tr.utf8 @@ -67,7 +67,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#fallbackresource">FallbackResource</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="DirectoryCheckHandler" id="DirectoryCheckHandler">DirectoryCheckHandler</a> <a name="directorycheckhandler" id="directorycheckhandler">Yönergesi</a></h2> <table class="directive"> @@ -273,6 +272,7 @@ 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"> en </a> | diff --git a/docs/manual/mod/mod_dumpio.html.en b/docs/manual/mod/mod_dumpio.html.en index 4d8db68bcf..53ea998323 100644 --- a/docs/manual/mod/mod_dumpio.html.en +++ b/docs/manual/mod/mod_dumpio.html.en @@ -54,20 +54,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#enable">Enabling dumpio Support</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="enable" id="enable">Enabling dumpio Support</a></h2> - - - <p>To enable the module, it should be compiled and loaded - in to your running Apache configuration. Logging can then - be enabled or disabled separately for input and output via - the below directives. Additionally, <code class="module"><a href="../mod/mod_dumpio.html">mod_dumpio</a></code> - needs to be configured to <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> <code>trace7</code>: - </p> - <pre class="prettyprint lang-config">LogLevel dumpio:trace7</pre> - -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="DumpIOInput" id="DumpIOInput">DumpIOInput</a> <a name="dumpioinput" id="dumpioinput">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dump all input data to the error log</td></tr> @@ -99,6 +85,20 @@ </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"> <p><span>Available Languages: </span><a href="../en/mod/mod_dumpio.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_dumpio.html.fr b/docs/manual/mod/mod_dumpio.html.fr index c3c8e383bc..3554670bc0 100644 --- a/docs/manual/mod/mod_dumpio.html.fr +++ b/docs/manual/mod/mod_dumpio.html.fr @@ -56,20 +56,6 @@ erreurs de la manire souhaite.</td></tr> <li><img alt="" src="../images/down.gif" /> <a href="#enable">Activation du support dumpio</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="enable" id="enable">Activation du support dumpio</a></h2> - - - <p>Pour activer le module, ce dernier doit tre compil et charg - par l'intermdiaire de la configuration de votre instance d'Apache. - La journalisation peut ensuite tre active ou - dsactive sparment - pour les entres et sorties l'aide des directives ci-dessous. En - outre, <code class="module"><a href="../mod/mod_dumpio.html">mod_dumpio</a></code> doit tre configur <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> <code>trace7</code> :</p> - <pre class="prettyprint lang-config">LogLevel dumpio:trace7</pre> - -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="dumpioinput" id="dumpioinput">Directive</a> <a name="DumpIOInput" id="DumpIOInput">DumpIOInput</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enregistre toutes les entres dans le journal des @@ -103,6 +89,20 @@ erreurs</td></tr> </div> </div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="enable" id="enable">Activation du support dumpio</a></h2> + + + <p>Pour activer le module, ce dernier doit tre compil et charg + par l'intermdiaire de la configuration de votre instance d'Apache. + La journalisation peut ensuite tre active ou + dsactive sparment + pour les entres 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"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_dumpio.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_dumpio.html.ja.utf8 b/docs/manual/mod/mod_dumpio.html.ja.utf8 index ce36a42b64..bb69938946 100644 --- a/docs/manual/mod/mod_dumpio.html.ja.utf8 +++ b/docs/manual/mod/mod_dumpio.html.ja.utf8 @@ -58,16 +58,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#enable">dumpio サポートを有効にする</a></li> </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="enable" id="enable">dumpio サポートを有効にする</a></h2> - - - <p>このモジュールを有効にするには、モジュールがコンパイルされていて、 - 実行する Apache の設定でサーバに組み込まれている必要があります。 - ロギング機能は、以下のディレクティブを使って有効にしたり - 無効にしたりできます。</p> -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="DumpIOInput" id="DumpIOInput">DumpIOInput</a> <a name="dumpioinput" id="dumpioinput">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>エラーログにすべての入力データをダンプ</td></tr> @@ -103,6 +93,16 @@ </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"> en </a> | diff --git a/docs/manual/mod/mod_echo.html.en b/docs/manual/mod/mod_echo.html.en index 463f30444a..ef0ff03096 100644 --- a/docs/manual/mod/mod_echo.html.en +++ b/docs/manual/mod/mod_echo.html.en @@ -45,7 +45,6 @@ modules</td></tr> <li><img alt="" src="../images/down.gif" /> <a href="#protocolecho">ProtocolEcho</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="ProtocolEcho" id="ProtocolEcho">ProtocolEcho</a> <a name="protocolecho" id="protocolecho">Directive</a></h2> <table class="directive"> @@ -63,6 +62,7 @@ modules</td></tr> </div> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_echo.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_echo.html.fr b/docs/manual/mod/mod_echo.html.fr index 574ce8d1f9..b15fcdf908 100644 --- a/docs/manual/mod/mod_echo.html.fr +++ b/docs/manual/mod/mod_echo.html.fr @@ -45,7 +45,6 @@ protocole</td></tr> <li><img alt="" src="../images/down.gif" /> <a href="#protocolecho">ProtocolEcho</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="protocolecho" id="protocolecho">Directive</a> <a name="ProtocolEcho" id="ProtocolEcho">ProtocolEcho</a></h2> <table class="directive"> @@ -63,6 +62,7 @@ protocole</td></tr> </div> </div> + </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_echo.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_echo.html.ja.utf8 b/docs/manual/mod/mod_echo.html.ja.utf8 index a60914f51c..98322b234f 100644 --- a/docs/manual/mod/mod_echo.html.ja.utf8 +++ b/docs/manual/mod/mod_echo.html.ja.utf8 @@ -45,7 +45,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#protocolecho">ProtocolEcho</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="ProtocolEcho" id="ProtocolEcho">ProtocolEcho</a> <a name="protocolecho" id="protocolecho">ディレクティブ</a></h2> <table class="directive"> @@ -63,6 +62,7 @@ </div> </div> + </div> <div class="bottomlang"> <p><span>翻訳済み言語: </span><a href="../en/mod/mod_echo.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_echo.html.ko.euc-kr b/docs/manual/mod/mod_echo.html.ko.euc-kr index 6284319b9f..6e7f91e14c 100644 --- a/docs/manual/mod/mod_echo.html.ko.euc-kr +++ b/docs/manual/mod/mod_echo.html.ko.euc-kr @@ -47,7 +47,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#protocolecho">ProtocolEcho</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="ProtocolEcho" id="ProtocolEcho">ProtocolEcho</a> <a name="protocolecho" id="protocolecho">þ</a></h2> <table class="directive"> @@ -66,6 +65,7 @@ </code></p></div> </div> + </div> <div class="bottomlang"> <p><span> : </span><a href="../en/mod/mod_echo.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_env.html.en b/docs/manual/mod/mod_env.html.en index 2aea58f0b9..63c8fae450 100644 --- a/docs/manual/mod/mod_env.html.en +++ b/docs/manual/mod/mod_env.html.en @@ -55,7 +55,6 @@ SSI pages</td></tr> <li><a href="../env.html">Environment Variables</a></li> <li><code class="directive"><a href="../mod/mod_setenvif.html#setenvif">SetEnvIf</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="PassEnv" id="PassEnv">PassEnv</a> <a name="passenv" id="passenv">Directive</a></h2> <table class="directive"> @@ -129,6 +128,7 @@ SSI pages</td></tr> </div> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_env.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_env.html.fr b/docs/manual/mod/mod_env.html.fr index 0a9afc6d1b..14a1a1dde6 100644 --- a/docs/manual/mod/mod_env.html.fr +++ b/docs/manual/mod/mod_env.html.fr @@ -57,7 +57,6 @@ pages SSI</td></tr> <li><a href="../env.html">Variables d'environnement</a></li> <li><code class="directive"><a href="../mod/mod_setenvif.html#setenvif">SetEnvIf</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="passenv" id="passenv">Directive</a> <a name="PassEnv" id="PassEnv">PassEnv</a></h2> <table class="directive"> @@ -136,6 +135,7 @@ shell</td></tr> </div> </div> + </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_env.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_env.html.ja.utf8 b/docs/manual/mod/mod_env.html.ja.utf8 index 20d1d67065..b312f17b7e 100644 --- a/docs/manual/mod/mod_env.html.ja.utf8 +++ b/docs/manual/mod/mod_env.html.ja.utf8 @@ -57,7 +57,6 @@ <ul class="seealso"> <li><a href="../env.html">環境変数</a></li> </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="PassEnv" id="PassEnv">PassEnv</a> <a name="passenv" id="passenv">ディレクティブ</a></h2> <table class="directive"> @@ -115,6 +114,7 @@ </code></p></div> </div> + </div> <div class="bottomlang"> <p><span>翻訳済み言語: </span><a href="../en/mod/mod_env.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_env.html.ko.euc-kr b/docs/manual/mod/mod_env.html.ko.euc-kr index ed80e82462..e712d5c446 100644 --- a/docs/manual/mod/mod_env.html.ko.euc-kr +++ b/docs/manual/mod/mod_env.html.ko.euc-kr @@ -53,7 +53,6 @@ <ul class="seealso"> <li><a href="../env.html">ȯ溯</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="PassEnv" id="PassEnv">PassEnv</a> <a name="passenv" id="passenv">þ</a></h2> <table class="directive"> @@ -108,6 +107,7 @@ </code></p></div> </div> + </div> <div class="bottomlang"> <p><span> : </span><a href="../en/mod/mod_env.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_env.html.tr.utf8 b/docs/manual/mod/mod_env.html.tr.utf8 index 6c0996a253..2c0745db19 100644 --- a/docs/manual/mod/mod_env.html.tr.utf8 +++ b/docs/manual/mod/mod_env.html.tr.utf8 @@ -57,7 +57,6 @@ etmek için kullanılır.</td></tr> <li><a href="../env.html">Ortam Değişkenleri</a></li> <li><code class="directive"><a href="../mod/mod_setenvif.html#setenvif">SetEnvIf</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="PassEnv" id="PassEnv">PassEnv</a> <a name="passenv" id="passenv">Yönergesi</a></h2> <table class="directive"> @@ -131,6 +130,7 @@ 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"> en </a> | diff --git a/docs/manual/mod/mod_example_hooks.html.en b/docs/manual/mod/mod_example_hooks.html.en index cf6e951007..596fed8f81 100644 --- a/docs/manual/mod/mod_example_hooks.html.en +++ b/docs/manual/mod/mod_example_hooks.html.en @@ -60,6 +60,26 @@ <li><img alt="" src="../images/down.gif" /> <a href="#using">Using the <code>mod_example_hooks</code> Module</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="Example" id="Example">Example</a> <a name="example" id="example">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Demonstration directive to illustrate the Apache module +API</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Example</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_example_hooks</td></tr> +</table> + <p>The <code class="directive">Example</code> directive just sets a demonstration + flag which the example module's content handler displays. It + takes no arguments. If you browse to an URL to which the + example-hooks content-handler applies, you will get a display of the + routines within the module and how and in what order they were + called to service the document request. The effect of this + directive one can observe under the point "<code>Example + directive declared here: YES/NO</code>".</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="compiling" id="compiling">Compiling the example_hooks module</a></h2> @@ -128,26 +148,6 @@ 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"> en </a> | diff --git a/docs/manual/mod/mod_example_hooks.html.fr b/docs/manual/mod/mod_example_hooks.html.fr index ef9c71e969..edd73b6755 100644 --- a/docs/manual/mod/mod_example_hooks.html.fr +++ b/docs/manual/mod/mod_example_hooks.html.fr @@ -62,6 +62,27 @@ <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 dmonstration 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, rpertoire, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Exprimental</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 dfinir un drapeau de dmonstration que le gestionnaire de + contenu du module example_hooks va afficher. Elle ne possde 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 appeles pour + servir le document demand. On peut observer l'effet de cette + directive dans la phrase "<code>Example + directive declared here: YES/NO</code>".</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="compiling" id="compiling">Compilation du module example_hooks</a></h2> @@ -140,27 +161,6 @@ vous devriez pouvoir accder ce fichier et voir s'afficher ce qui a t dcrit 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 dmonstration 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, rpertoire, .htaccess</td></tr> -<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Exprimental</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 dfinir un drapeau de dmonstration que le gestionnaire de - contenu du module example_hooks va afficher. Elle ne possde 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 appeles 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"> en </a> | diff --git a/docs/manual/mod/mod_example_hooks.html.ko.euc-kr b/docs/manual/mod/mod_example_hooks.html.ko.euc-kr index 164c690e3f..9479ba2d90 100644 --- a/docs/manual/mod/mod_example_hooks.html.ko.euc-kr +++ b/docs/manual/mod/mod_example_hooks.html.ko.euc-kr @@ -59,6 +59,24 @@ <li><img alt="" src="../images/down.gif" /> <a href="#using"><code>mod_example_hooks</code> ϱ</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="Example" id="Example">Example</a> <a name="example" id="example">þ</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">:</a></th><td>ġ API ϱ þ</td></tr> +<tr><th><a href="directive-dict.html#Syntax">:</a></th><td><code>Example</code></td></tr> +<tr><th><a href="directive-dict.html#Context">:</a></th><td>ּ, ȣƮ, directory, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Status">:</a></th><td>Experimental</td></tr> +<tr><th><a href="directive-dict.html#Module">:</a></th><td>mod_example_hooks</td></tr> +</table> + <p><code class="directive">Example</code> þ example + ڵ鷯 θ Ѵ. þ + ƱԸƮ ʴ´. example ڵ鷯 URL + ϸ û ϱ ȿ Լ + Ҹ ִ. þ ȿ + "<code>Example directive declared here: YES/NO</code>" + Ȯ ִ.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="compiling" id="compiling">example ϱ</a></h2> @@ -131,24 +149,6 @@ <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"> en </a> | diff --git a/docs/manual/mod/mod_expires.html.en b/docs/manual/mod/mod_expires.html.en index a7546b0688..5144634e99 100644 --- a/docs/manual/mod/mod_expires.html.en +++ b/docs/manual/mod/mod_expires.html.en @@ -71,63 +71,6 @@ criteria</td></tr> <li><img alt="" src="../images/down.gif" /> <a href="#AltSyn">Alternate Interval Syntax</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="AltSyn" id="AltSyn">Alternate Interval Syntax</a></h2> - <p>The <code class="directive"><a href="#expiresdefault">ExpiresDefault</a></code> and - <code class="directive"><a href="#expiresbytype">ExpiresByType</a></code> directives - can also be defined in a more readable syntax of the form:</p> - - <pre class="prettyprint lang-config">ExpiresDefault "<var>base</var> [plus <var>num</var> <var>type</var>] [<var>num</var> <var>type</var>] ..." -ExpiresByType type/encoding "<var>base</var> [plus <var>num</var> <var>type</var>] [<var>num</var> <var>type</var>] ..."</pre> - - - <p>where <var>base</var> is one of:</p> - - <ul> - <li><code>access</code></li> - - <li><code>now</code> (equivalent to - '<code>access</code>')</li> - - <li><code>modification</code></li> - </ul> - - <p>The <code>plus</code> keyword is optional. <var>num</var> - should be an integer value [acceptable to <code>atoi()</code>], - and <var>type</var> is one of:</p> - - <ul> - <li><code>years</code></li> - <li><code>months</code></li> - <li><code>weeks</code></li> - <li><code>days</code></li> - <li><code>hours</code></li> - <li><code>minutes</code></li> - <li><code>seconds</code></li> - </ul> - - <p>For example, any of the following directives can be used to - make documents expire 1 month after being accessed, by - default:</p> - - <pre class="prettyprint lang-config">ExpiresDefault "access plus 1 month" -ExpiresDefault "access plus 4 weeks" -ExpiresDefault "access plus 30 days"</pre> - - - <p>The expiry time can be fine-tuned by adding several - '<var>num</var> <var>type</var>' clauses:</p> - - <pre class="prettyprint lang-config">ExpiresByType text/html "access plus 1 month 15 days 2 hours" -ExpiresByType image/gif "modification plus 5 hours 3 minutes"</pre> - - - <p>Note that if you use a modification date based setting, the - Expires header will <strong>not</strong> be added to content - that does not come from a file on disk. This is due to the fact - that there is no modification time for such content.</p> -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="ExpiresActive" id="ExpiresActive">ExpiresActive</a> <a name="expiresactive" id="expiresactive">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enables generation of <code>Expires</code> @@ -237,6 +180,63 @@ ExpiresByType text/html M604800</pre> description as well.</p> </div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="AltSyn" id="AltSyn">Alternate Interval Syntax</a></h2> + <p>The <code class="directive"><a href="#expiresdefault">ExpiresDefault</a></code> and + <code class="directive"><a href="#expiresbytype">ExpiresByType</a></code> directives + can also be defined in a more readable syntax of the form:</p> + + <pre class="prettyprint lang-config">ExpiresDefault "<var>base</var> [plus <var>num</var> <var>type</var>] [<var>num</var> <var>type</var>] ..." +ExpiresByType type/encoding "<var>base</var> [plus <var>num</var> <var>type</var>] [<var>num</var> <var>type</var>] ..."</pre> + + + <p>where <var>base</var> is one of:</p> + + <ul> + <li><code>access</code></li> + + <li><code>now</code> (equivalent to + '<code>access</code>')</li> + + <li><code>modification</code></li> + </ul> + + <p>The <code>plus</code> keyword is optional. <var>num</var> + should be an integer value [acceptable to <code>atoi()</code>], + and <var>type</var> is one of:</p> + + <ul> + <li><code>years</code></li> + <li><code>months</code></li> + <li><code>weeks</code></li> + <li><code>days</code></li> + <li><code>hours</code></li> + <li><code>minutes</code></li> + <li><code>seconds</code></li> + </ul> + + <p>For example, any of the following directives can be used to + make documents expire 1 month after being accessed, by + default:</p> + + <pre class="prettyprint lang-config">ExpiresDefault "access plus 1 month" +ExpiresDefault "access plus 4 weeks" +ExpiresDefault "access plus 30 days"</pre> + + + <p>The expiry time can be fine-tuned by adding several + '<var>num</var> <var>type</var>' clauses:</p> + + <pre class="prettyprint lang-config">ExpiresByType text/html "access plus 1 month 15 days 2 hours" +ExpiresByType image/gif "modification plus 5 hours 3 minutes"</pre> + + + <p>Note that if you use a modification date based setting, the + Expires header will <strong>not</strong> be added to content + that does not come from a file on disk. This is due to the fact + that there is no modification time for such content.</p> +</div> </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_expires.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_expires.html.fr b/docs/manual/mod/mod_expires.html.fr index 82ee346565..1e78b09e3d 100644 --- a/docs/manual/mod/mod_expires.html.fr +++ b/docs/manual/mod/mod_expires.html.fr @@ -74,63 +74,6 @@ l'utilisateur</td></tr> l'intervalle</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="AltSyn" id="AltSyn">Autre syntaxe de dfinition 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 entire [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 dfaut les documents 1 mois - aprs leur accs, 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 dfinie plus prcisment 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 base sur la date de - modification, l'en-tte 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 possde pas de date de - modification.</p> -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="expiresactive" id="expiresactive">Directive</a> <a name="ExpiresActive" id="ExpiresActive">ExpiresActive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active la gnration d'en-ttes @@ -243,6 +186,63 @@ d'expiration</td></tr> syntaxe de l'argument, ainsi que la description de la <a href="#AltSyn">syntaxe alternative</a>.</p> </div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="AltSyn" id="AltSyn">Autre syntaxe de dfinition 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 entire [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 dfaut les documents 1 mois + aprs leur accs, 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 dfinie plus prcisment 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 base sur la date de + modification, l'en-tte 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 possde 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"> en </a> | diff --git a/docs/manual/mod/mod_expires.html.ja.utf8 b/docs/manual/mod/mod_expires.html.ja.utf8 index fef2c58fff..07265ff0a2 100644 --- a/docs/manual/mod/mod_expires.html.ja.utf8 +++ b/docs/manual/mod/mod_expires.html.ja.utf8 @@ -68,69 +68,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#AltSyn">代替期間指定構文</a></li> </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="AltSyn" id="AltSyn">代替期間指定構文</a></h2> - - <p><code class="directive"><a href="#expiresdefault">ExpiresDefault</a></code> ディレクティブと - <code class="directive"><a href="#expiresbytype">ExpiresByType</a></code> ディレクティブは - 以下のより読み易い構文を使って定義することができます:</p> - - <div class="example"><p><code> - ExpiresDefault "<base> [plus] {<num> - <type>}*"<br /> - ExpiresByType type/encoding "<base> [plus] - {<num> <type>}*" - </code></p></div> - - <p><base> は以下のどれかです:</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> キーワードは省略可能です。<num> - は (<code>atoi()</code> が受け付ける) 整数値、 - <type> は以下のどれかです:</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>期限切れ時刻はいくつか - '<num> <type>' 節を追加することでより細かく - 制御することができます:</p> - - <div class="example"><p><code> - ExpiresByType text/html "access plus 1 month 15 - days 2 hours"<br /> - ExpiresByType image/gif "modification plus 5 hours 3 - minutes" - </code></p></div> - - <p>修正時刻に基づいた設定を使用している場合、Expires ヘッダは - ディスクのファイル以外のコンテンツには<strong>追加されない</strong>ことに注意 - してください。そのようなコンテンツには修正時刻は存在しないからです。</p> -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="ExpiresActive" id="ExpiresActive">ExpiresActive</a> <a name="expiresactive" id="expiresactive">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td><code>Expires</code> ヘッダの生成を有効にする</td></tr> @@ -230,6 +167,69 @@ 参照してください。</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 "<base> [plus] {<num> + <type>}*"<br /> + ExpiresByType type/encoding "<base> [plus] + {<num> <type>}*" + </code></p></div> + + <p><base> は以下のどれかです:</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> キーワードは省略可能です。<num> + は (<code>atoi()</code> が受け付ける) 整数値、 + <type> は以下のどれかです:</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>期限切れ時刻はいくつか + '<num> <type>' 節を追加することでより細かく + 制御することができます:</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"> en </a> | diff --git a/docs/manual/mod/mod_expires.html.ko.euc-kr b/docs/manual/mod/mod_expires.html.ko.euc-kr index f8d4c3a9d2..da9eb2c1c3 100644 --- a/docs/manual/mod/mod_expires.html.ko.euc-kr +++ b/docs/manual/mod/mod_expires.html.ko.euc-kr @@ -66,68 +66,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#AltSyn">ٸ </a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="AltSyn" id="AltSyn">ٸ </a></h2> - <p><code class="directive"><a href="#expiresdefault">ExpiresDefault</a></code> - <code class="directive"><a href="#expiresbytype">ExpiresByType</a></code> - þ б ִ:</p> - - <div class="example"><p><code> - ExpiresDefault "<base> [plus] {<num> - <type>}*"<br /> - ExpiresByType type/encoding "<base> [plus] - {<num> <type>}*" - </code></p></div> - - <p><base> ϳ̴:</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> Ű ȴ. <num> - [<code>atoi()</code> ִ] ̴. - <type> ϳ̴:</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>'<num> <type>' ݺؼ Ͽ - ð ڼ ִ:</p> - - <div class="example"><p><code> - ExpiresByType text/html "access plus 1 month 15 - days 2 hours"<br /> - ExpiresByType image/gif "modification plus 5 hours 3 - minutes" - </code></p></div> - - <p> ð(modification) ð ϴ - ũ ִ Ͽ ʴ´ٸ Expires - <strong>ʴ´</strong>. 뿡 ð - ̴.</p> -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="ExpiresActive" id="ExpiresActive">ExpiresActive</a> <a name="expiresactive" id="expiresactive">þ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">:</a></th><td><code>Expires</code> Ѵ</td></tr> @@ -220,6 +158,68 @@ ϶.</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 "<base> [plus] {<num> + <type>}*"<br /> + ExpiresByType type/encoding "<base> [plus] + {<num> <type>}*" + </code></p></div> + + <p><base> ϳ̴:</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> Ű ȴ. <num> + [<code>atoi()</code> ִ] ̴. + <type> ϳ̴:</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>'<num> <type>' ݺؼ Ͽ + ð ڼ ִ:</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"> en </a> | diff --git a/docs/manual/mod/mod_ext_filter.html.en b/docs/manual/mod/mod_ext_filter.html.en index 7578e00559..7e69fe9354 100644 --- a/docs/manual/mod/mod_ext_filter.html.en +++ b/docs/manual/mod/mod_ext_filter.html.en @@ -74,130 +74,6 @@ delivery to the client</td></tr> <li><a href="../filter.html">Filters</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="examples" id="examples">Examples</a></h2> - - <h3>Generating HTML from some other type of response</h3> - <pre class="prettyprint lang-config"># mod_ext_filter directive to define a filter -# to HTML-ize text/c files using the external -# program /usr/bin/enscript, with the type of -# the result set to text/html -ExtFilterDefine c-to-html mode=output \ - intype=text/c outtype=text/html \ - cmd="/usr/bin/enscript --color -W html -Ec -o - -" - -<Directory "/export/home/trawick/apacheinst/htdocs/c"> - # 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 -</Directory></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 - -<Location /gzipped> - - # 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 -</Location></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 - -<Location /> - # core directive to cause the slowdown filter to - # be run several times on output - # - SetOutputFilter slowdown;slowdown;slowdown -</Location></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" - -<Location /> - # core directive to cause the fixtext filter to - # be run on output - SetOutputFilter fixtext -</Location></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 - -<Directory /usr/local/docs> - SetEnvIf Remote_Addr 192.168.1.31 trace_this_client - SetOutputFilter tracebefore;deflate;traceafter -</Directory></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, ">$ARGV[0]") - or die "can't open $ARGV[0]: $?"; - -while (<STDIN>) { - 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> @@ -327,6 +203,130 @@ close(SAVE);</pre> 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 - -" + +<Directory "/export/home/trawick/apacheinst/htdocs/c"> + # 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 +</Directory></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 + +<Location /gzipped> + + # 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 +</Location></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 + +<Location /> + # core directive to cause the slowdown filter to + # be run several times on output + # + SetOutputFilter slowdown;slowdown;slowdown +</Location></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" + +<Location /> + # core directive to cause the fixtext filter to + # be run on output + SetOutputFilter fixtext +</Location></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 + +<Directory /usr/local/docs> + SetEnvIf Remote_Addr 192.168.1.31 trace_this_client + SetOutputFilter tracebefore;deflate;traceafter +</Directory></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, ">$ARGV[0]") + or die "can't open $ARGV[0]: $?"; + +while (<STDIN>) { + print SAVE $_; + print $_; +} + +close(SAVE);</pre> +</div> + +</div> </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_ext_filter.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_ext_filter.html.fr b/docs/manual/mod/mod_ext_filter.html.fr index 3dbd85b8ff..1099c59e56 100644 --- a/docs/manual/mod/mod_ext_filter.html.fr +++ b/docs/manual/mod/mod_ext_filter.html.fr @@ -75,140 +75,6 @@ externe avant de l'envoyer au client</td></tr> <li><a href="../filter.html">Filtres</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="examples" id="examples">Exemples</a></h2> - - <h3>Gnrer du HTML partir d'un autre type de - contenu</h3> - - <pre class="prettyprint lang-config"># la directive de mod_ext_filter dfinissant un filtre -# permettant de mettre des fichiers text/c au format HTML en -# utilisant le programme externe /usr/bin/enscript, le type du -# fichier rsultant tant dfini text/html -ExtFilterDefine c-to-html mode=output \ - intype=text/c outtype=text/html \ - cmd="/usr/bin/enscript --color -W html -Ec -o - -" - -<Directory "/export/home/trawick/apacheinst/htdocs/c"> - # directive de base permettant de traiter la sortie avec le - # nouveau filtre - SetOutputFilter c-to-html - - # directive de mod_mime dfinissant le type des fichiers dont - # le nom possde l'extension .c text/c - AddType text/c .c -</Directory></pre> - - - - <h3>Implmentation 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'implmentation plus - pratique.</p> - - <pre class="prettyprint lang-config"># la directive de mod_ext_filter qui dfinit le filtre externe -ExtFilterDefine gzip mode=output cmd=/bin/gzip - -<Location /gzipped> - - # 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-tte "Content-Encoding: gzip" - Header set Content-Encoding gzip -</Location></pre> - - - - - <h3>Ralentissement du serveur</h3> - <pre class="prettyprint lang-config"># directive de mod_ext_filter dfinissant 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 supplmentaires - ExtFilterDefine slowdown mode=output cmd=/bin/cat \ -ExtFilterDefine slowdown mode=output cmd=/bin/cat \ - preservescontentlength - -<Location /> - # directive de base permettant de traiter plusieurs fois la - # sortie avec le filtre slowdown - # - SetOutputFilter slowdown;slowdown;slowdown -</Location></pre> - - - - <h3>Utilisation de sed pour remplacer du texte dans la - rponse</h3> - - <pre class="prettyprint lang-config"># directive de mod_ext_filter dfinissant un filtre qui -# remplace du texte dans la rponse -# -ExtFilterDefine fixtext mode=output intype=text/html \ - cmd="/bin/sed s/verdana/arial/g" - -<Location /> - # directive de base permettant de traiter la sortie avec le - # filtre fixtext - SetOutputFilter fixtext -</Location></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 mme traitement sans avoir invoquer un programme -externe.</p> -</div> - - - - <h3>Tracer un autre filtre</h3> - <pre class="prettyprint lang-config"># Trace les donnes lues et crites par mod_deflate pour un -# client particulier (IP 192.168.1.31) qui a des problmes 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 paramtre ftype, le type de filtre par -# dfaut AP_FTYPE_RESOURCE placerait le filtre *avant* -# mod_deflate dans la chane de filtrage. Le fait d'affecter -# ce paramtre une valeur numrique sensiblement suprieure -# AP_FTYPE_CONTENT_SET permet de s'assurer que le filtre sera -# plac aprs mod_deflate. -ExtFilterDefine traceafter \ - cmd="/bin/tracefilter.pl /tmp/traceafter" \ - EnableEnv=trace_this_client ftype=21 - -<Directory /usr/local/docs> - SetEnvIf Remote_Addr 192.168.1.31 trace_this_client - SetOutputFilter tracebefore;deflate;traceafter -</Directory></pre> - - - <div class="example"><h3>Voici le filtre qui trace les donnes :</h3><pre class="prettyprint lang-perl">#!/usr/local/bin/perl -w -use strict; - -open(SAVE, ">$ARGV[0]") - or die "can't open $ARGV[0]: $?"; - -while (<STDIN>) { - 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>Dfinit un filtre externe</td></tr> @@ -348,6 +214,140 @@ close(SAVE);</pre> seront enregistrs 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>Gnrer du HTML partir d'un autre type de + contenu</h3> + + <pre class="prettyprint lang-config"># la directive de mod_ext_filter dfinissant un filtre +# permettant de mettre des fichiers text/c au format HTML en +# utilisant le programme externe /usr/bin/enscript, le type du +# fichier rsultant tant dfini text/html +ExtFilterDefine c-to-html mode=output \ + intype=text/c outtype=text/html \ + cmd="/usr/bin/enscript --color -W html -Ec -o - -" + +<Directory "/export/home/trawick/apacheinst/htdocs/c"> + # directive de base permettant de traiter la sortie avec le + # nouveau filtre + SetOutputFilter c-to-html + + # directive de mod_mime dfinissant le type des fichiers dont + # le nom possde l'extension .c text/c + AddType text/c .c +</Directory></pre> + + + + <h3>Implmentation 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'implmentation plus + pratique.</p> + + <pre class="prettyprint lang-config"># la directive de mod_ext_filter qui dfinit le filtre externe +ExtFilterDefine gzip mode=output cmd=/bin/gzip + +<Location /gzipped> + + # 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-tte "Content-Encoding: gzip" + Header set Content-Encoding gzip +</Location></pre> + + + + + <h3>Ralentissement du serveur</h3> + <pre class="prettyprint lang-config"># directive de mod_ext_filter dfinissant 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 supplmentaires + ExtFilterDefine slowdown mode=output cmd=/bin/cat \ +ExtFilterDefine slowdown mode=output cmd=/bin/cat \ + preservescontentlength + +<Location /> + # directive de base permettant de traiter plusieurs fois la + # sortie avec le filtre slowdown + # + SetOutputFilter slowdown;slowdown;slowdown +</Location></pre> + + + + <h3>Utilisation de sed pour remplacer du texte dans la + rponse</h3> + + <pre class="prettyprint lang-config"># directive de mod_ext_filter dfinissant un filtre qui +# remplace du texte dans la rponse +# +ExtFilterDefine fixtext mode=output intype=text/html \ + cmd="/bin/sed s/verdana/arial/g" + +<Location /> + # directive de base permettant de traiter la sortie avec le + # filtre fixtext + SetOutputFilter fixtext +</Location></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 mme traitement sans avoir invoquer un programme +externe.</p> +</div> + + + + <h3>Tracer un autre filtre</h3> + <pre class="prettyprint lang-config"># Trace les donnes lues et crites par mod_deflate pour un +# client particulier (IP 192.168.1.31) qui a des problmes 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 paramtre ftype, le type de filtre par +# dfaut AP_FTYPE_RESOURCE placerait le filtre *avant* +# mod_deflate dans la chane de filtrage. Le fait d'affecter +# ce paramtre une valeur numrique sensiblement suprieure +# AP_FTYPE_CONTENT_SET permet de s'assurer que le filtre sera +# plac aprs mod_deflate. +ExtFilterDefine traceafter \ + cmd="/bin/tracefilter.pl /tmp/traceafter" \ + EnableEnv=trace_this_client ftype=21 + +<Directory /usr/local/docs> + SetEnvIf Remote_Addr 192.168.1.31 trace_this_client + SetOutputFilter tracebefore;deflate;traceafter +</Directory></pre> + + + <div class="example"><h3>Voici le filtre qui trace les donnes :</h3><pre class="prettyprint lang-perl">#!/usr/local/bin/perl -w +use strict; + +open(SAVE, ">$ARGV[0]") + or die "can't open $ARGV[0]: $?"; + +while (<STDIN>) { + print SAVE $_; + print $_; +} + +close(SAVE);</pre> +</div> + +</div> </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_ext_filter.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_ext_filter.html.ja.utf8 b/docs/manual/mod/mod_ext_filter.html.ja.utf8 index cb2ab5306c..62f6cc343d 100644 --- a/docs/manual/mod/mod_ext_filter.html.ja.utf8 +++ b/docs/manual/mod/mod_ext_filter.html.ja.utf8 @@ -74,6 +74,145 @@ <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> @@ -225,145 +364,6 @@ </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"> <p><span>翻訳済み言語: </span><a href="../en/mod/mod_ext_filter.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_ext_filter.html.ko.euc-kr b/docs/manual/mod/mod_ext_filter.html.ko.euc-kr index 670e331f14..ea1af9b358 100644 --- a/docs/manual/mod/mod_ext_filter.html.ko.euc-kr +++ b/docs/manual/mod/mod_ext_filter.html.ko.euc-kr @@ -73,6 +73,136 @@ <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> @@ -217,136 +347,6 @@ </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"> <p><span> : </span><a href="../en/mod/mod_ext_filter.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_file_cache.html.en b/docs/manual/mod/mod_file_cache.html.en index 83a03231ed..9932442495 100644 --- a/docs/manual/mod/mod_file_cache.html.en +++ b/docs/manual/mod/mod_file_cache.html.en @@ -70,6 +70,64 @@ <li><img alt="" src="../images/down.gif" /> <a href="#using">Using mod_file_cache</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="CacheFile" id="CacheFile">CacheFile</a> <a name="cachefile" id="cachefile">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Cache a list of file handles at startup time</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheFile <var>file-path</var> [<var>file-path</var>] ...</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_file_cache</td></tr> +</table> + <p>The <code class="directive">CacheFile</code> directive opens handles to + one or more files (given as whitespace separated arguments) and + places these handles into the cache at server startup + time. Handles to cached files are automatically closed on a server + shutdown. When the files have changed on the filesystem, the + server should be restarted to re-cache them.</p> + + <p>Be careful with the <var>file-path</var> arguments: They have + to literally match the filesystem path Apache's URL-to-filename + translation handlers create. We cannot compare inodes or other + stuff to match paths through symbolic links <em>etc.</em> + because that again would cost extra <code>stat()</code> system + calls which is not acceptable. This module may or may not work + with filenames rewritten by <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> or + <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p> + + <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">CacheFile /usr/local/apache/htdocs/index.html</pre> +</div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="MMapFile" id="MMapFile">MMapFile</a> <a name="mmapfile" id="mmapfile">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Map a list of files into memory at startup time</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>MMapFile <var>file-path</var> [<var>file-path</var>] ...</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_file_cache</td></tr> +</table> + <p>The <code class="directive">MMapFile</code> directive maps one or more files + (given as whitespace separated arguments) into memory at server + startup time. They are automatically unmapped on a server + shutdown. When the files have changed on the filesystem at + least a <code>HUP</code> or <code>USR1</code> signal should be send to + the server to re-<code>mmap()</code> them.</p> + + <p>Be careful with the <var>file-path</var> arguments: They have + to literally match the filesystem path Apache's URL-to-filename + translation handlers create. We cannot compare inodes or other + stuff to match paths through symbolic links <em>etc.</em> + because that again would cost extra <code>stat()</code> system + calls which is not acceptable. This module may or may not work + with filenames rewritten by <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> or + <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p> + + <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">MMapFile /usr/local/apache/htdocs/index.html</pre> +</div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="using" id="using">Using mod_file_cache</a></h2> @@ -144,64 +202,6 @@ </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"> <p><span>Available Languages: </span><a href="../en/mod/mod_file_cache.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_file_cache.html.fr b/docs/manual/mod/mod_file_cache.html.fr index b5f7e6f7df..290ea06f27 100644 --- a/docs/manual/mod/mod_file_cache.html.fr +++ b/docs/manual/mod/mod_file_cache.html.fr @@ -77,6 +77,72 @@ fichiers</td></tr> <li><img alt="" src="../images/down.gif" /> <a href="#using">Utilisation de mod_file_cache</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="cachefile" id="cachefile">Directive</a> <a name="CacheFile" id="CacheFile">CacheFile</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Met en cache une liste de gestionnaires de fichiers au +dmarrage</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>Exprimental</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 (spars par des + espaces), et place ceux-ci dans le cache au dmarrage du + serveur. Les gestionnaires des fichiers mis en cache sont + automatiquement ferms l'arrt du serveur. Lorsqu'un ou plusieurs + fichiers ont t modifis sur disque, le serveur doit tre redmarr + 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 systme de fichier que + crent 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 ncessiterait un + appel <code>stat()</code> supplmentaire, ce qui est inacceptable. + Il n'est pas garanti que ce module fonctionne avec des noms de + fichiers rcrits 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 dmarrage une liste de fichiers en +mmoire</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>Exprimental</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 (spars par des espaces) en mmoire au + dmarrage du serveur. Ceux-ci sont automatiquement dchargs de la + mmoire l'arrt du serveur. Lorsqu'un ou plusieurs fichiers ont + t modifis 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 systme de fichier que + crent 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 ncessiterait un + appel <code>stat()</code> supplmentaire, ce qui est inacceptable. + Il n'est pas garanti que ce module fonctionne avec des noms de + fichiers rcrits par <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> ou + <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p> + + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">MMapFile /usr/local/apache/htdocs/index.html</pre> +</div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="using" id="using">Utilisation de mod_file_cache</a></h2> @@ -168,72 +234,6 @@ fichiers</td></tr> </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 -dmarrage</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>Exprimental</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 (spars par des - espaces), et place ceux-ci dans le cache au dmarrage du - serveur. Les gestionnaires des fichiers mis en cache sont - automatiquement ferms l'arrt du serveur. Lorsqu'un ou plusieurs - fichiers ont t modifis sur disque, le serveur doit tre redmarr - 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 systme de fichier que - crent 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 ncessiterait un - appel <code>stat()</code> supplmentaire, ce qui est inacceptable. - Il n'est pas garanti que ce module fonctionne avec des noms de - fichiers rcrits 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 dmarrage une liste de fichiers en -mmoire</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>Exprimental</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 (spars par des espaces) en mmoire au - dmarrage du serveur. Ceux-ci sont automatiquement dchargs de la - mmoire l'arrt du serveur. Lorsqu'un ou plusieurs fichiers ont - t modifis 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 systme de fichier que - crent 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 ncessiterait un - appel <code>stat()</code> supplmentaire, ce qui est inacceptable. - Il n'est pas garanti que ce module fonctionne avec des noms de - fichiers rcrits 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"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_file_cache.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_file_cache.html.ko.euc-kr b/docs/manual/mod/mod_file_cache.html.ko.euc-kr index 07c2c4618b..f73a037981 100644 --- a/docs/manual/mod/mod_file_cache.html.ko.euc-kr +++ b/docs/manual/mod/mod_file_cache.html.ko.euc-kr @@ -71,6 +71,63 @@ <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>۽ ڵ ijѴ</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) ϵ ڵ ij Ѵ. + ڵ ij ڵ ݴ´(close). + Ͻýۿ Ǹ ٽ ijϱ + ؾ Ѵ.</p> + + <p><var>file-path</var> ƱԸƮ ض. ƱԸƮ + ġ URL-ϸ ȯ ڵ鷯 Ͻý ο + Ȯ ġؾ Ѵ. ѹ ʿ <code>stat()</code> + ýȣ ʿϱ inode ɺũ <em></em> + θ . <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> + <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> ۼ ϸ ٷ + ֱ ϴ.</p> + + <div class="example"><h3></h3><p><code> + CacheFile /usr/local/apache/htdocs/index.html + </code></p></div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="MMapFile" id="MMapFile">MMapFile</a> <a name="mmapfile" id="mmapfile">þ</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">:</a></th><td>۽ Ѵ</td></tr> +<tr><th><a href="directive-dict.html#Syntax">:</a></th><td><code>MMapFile <var>file-path</var> [<var>file-path</var>] ...</code></td></tr> +<tr><th><a href="directive-dict.html#Context">:</a></th><td>ּ</td></tr> +<tr><th><a href="directive-dict.html#Status">:</a></th><td>Experimental</td></tr> +<tr><th><a href="directive-dict.html#Module">:</a></th><td>mod_file_cache</td></tr> +</table> + <p><code class="directive">MMapFile</code> þ Ҷ + ( ƱԸƮ ) + Ѵ(map). ڵ Ǭ(unmap). + Ͻýۿ Ǹ ϵ ٽ + <code>mmap()</code>ϱ ּ <code>HUP</code>̳ + <code>USR1</code> ñ׳ Ѵ.</p> + + <p><var>file-path</var> ƱԸƮ ض. ƱԸƮ + ġ URL-ϸ ȯ ڵ鷯 Ͻý ο + Ȯ ġؾ Ѵ. ѹ ʿ <code>stat()</code> + ýȣ ʿϱ inode ɺũ <em></em> + θ . <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> + <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> ۼ ϸ ٷ + ֱ ϴ.</p> + + <div class="example"><h3></h3><p><code> + MMapFile /usr/local/apache/htdocs/index.html + </code></p></div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="using" id="using">mod_file_cache ϱ</a></h2> @@ -139,63 +196,6 @@ </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>۽ ڵ ijѴ</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) ϵ ڵ ij Ѵ. - ڵ ij ڵ ݴ´(close). - Ͻýۿ Ǹ ٽ ijϱ - ؾ Ѵ.</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"> en </a> | diff --git a/docs/manual/mod/mod_filter.html.en b/docs/manual/mod/mod_filter.html.en index 132813ed6b..501f468ca0 100644 --- a/docs/manual/mod/mod_filter.html.en +++ b/docs/manual/mod/mod_filter.html.en @@ -64,200 +64,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#protocol">Protocol Handling</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="smart" id="smart">Smart Filtering</a></h2> - <p>In the traditional filtering model, filters are inserted unconditionally - using <code class="directive"><a href="../mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code> and family. - Each filter then needs to determine whether to run, and there is little - flexibility available for server admins to allow the chain to be - configured dynamically.</p> - - <p><code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> by contrast gives server administrators a - great deal of flexibility in configuring the filter chain. In fact, - filters can be inserted based on complex boolean - <a href="../expr.html">expressions</a> This generalises the limited - flexibility offered by <code class="directive">AddOutputFilterByType</code>.</p> -</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="terms" id="terms">Filter Declarations, Providers and Chains</a></h2> - <p class="figure"> - <img src="../images/mod_filter_old.gif" width="160" height="310" alt="[This image displays the traditional filter model]" /><br /> - <dfn>Figure 1:</dfn> The traditional filter model</p> - - <p>In the traditional model, output filters are a simple chain - from the content generator (handler) to the client. This works well - provided the filter chain can be correctly configured, but presents - problems when the filters need to be configured dynamically based on - the outcome of the handler.</p> - - <p class="figure"> - <img src="../images/mod_filter_new.gif" width="423" height="331" alt="[This image shows the mod_filter model]" /><br /> - <dfn>Figure 2:</dfn> The <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> model</p> - - <p><code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> works by introducing indirection into - the filter chain. Instead of inserting filters in the chain, we insert - a filter harness which in turn dispatches conditionally - to a filter provider. Any content filter may be used as a provider - to <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code>; no change to existing filter modules - is required (although it may be possible to simplify them). There can be - multiple providers for one filter, but no more than one provider will - run for any single request.</p> - - <p>A filter chain comprises any number of instances of the filter - harness, each of which may have any number of providers. A special - case is that of a single provider with unconditional dispatch: this - is equivalent to inserting the provider filter directly into the chain.</p> -</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="config" id="config">Configuring the Chain</a></h2> - <p>There are three stages to configuring a filter chain with - <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code>. For details of the directives, see below.</p> - - <dl> - <dt>Declare Filters</dt> - <dd>The <code class="directive"><a href="#filterdeclare">FilterDeclare</a></code> directive - declares a filter, assigning it a name and filter type. Required - only if the filter is not the default type AP_FTYPE_RESOURCE.</dd> - - <dt>Register Providers</dt> - <dd>The <code class="directive"><a href="#filterprovider">FilterProvider</a></code> - directive registers a provider with a filter. The filter may have - been declared with <code class="directive"><a href="#filterdeclare">FilterDeclare</a></code>; if not, FilterProvider will implicitly - declare it with the default type AP_FTYPE_RESOURCE. The provider - must have been - registered with <code>ap_register_output_filter</code> by some module. - The final argument to <code class="directive"><a href="#filterprovider">FilterProvider</a></code> is an expression: the provider will be - selected to run for a request if and only if the expression evaluates - to true. The expression may evaluate HTTP request or response - headers, environment variables, or the Handler used by this request. - Unlike earlier versions, mod_filter now supports complex expressions - involving multiple criteria with AND / OR logic (&& / ||) - 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'" -<Location /image-filter> - FilterChain unpack downsample repack -</Location></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> @@ -488,6 +294,200 @@ for a complete reference and examples.</li> </dl> </div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="smart" id="smart">Smart Filtering</a></h2> + <p>In the traditional filtering model, filters are inserted unconditionally + using <code class="directive"><a href="../mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code> and family. + Each filter then needs to determine whether to run, and there is little + flexibility available for server admins to allow the chain to be + configured dynamically.</p> + + <p><code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> by contrast gives server administrators a + great deal of flexibility in configuring the filter chain. In fact, + filters can be inserted based on complex boolean + <a href="../expr.html">expressions</a> This generalises the limited + flexibility offered by <code class="directive">AddOutputFilterByType</code>.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="terms" id="terms">Filter Declarations, Providers and Chains</a></h2> + <p class="figure"> + <img src="../images/mod_filter_old.gif" width="160" height="310" alt="[This image displays the traditional filter model]" /><br /> + <dfn>Figure 1:</dfn> The traditional filter model</p> + + <p>In the traditional model, output filters are a simple chain + from the content generator (handler) to the client. This works well + provided the filter chain can be correctly configured, but presents + problems when the filters need to be configured dynamically based on + the outcome of the handler.</p> + + <p class="figure"> + <img src="../images/mod_filter_new.gif" width="423" height="331" alt="[This image shows the mod_filter model]" /><br /> + <dfn>Figure 2:</dfn> The <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> model</p> + + <p><code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> works by introducing indirection into + the filter chain. Instead of inserting filters in the chain, we insert + a filter harness which in turn dispatches conditionally + to a filter provider. Any content filter may be used as a provider + to <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code>; no change to existing filter modules + is required (although it may be possible to simplify them). There can be + multiple providers for one filter, but no more than one provider will + run for any single request.</p> + + <p>A filter chain comprises any number of instances of the filter + harness, each of which may have any number of providers. A special + case is that of a single provider with unconditional dispatch: this + is equivalent to inserting the provider filter directly into the chain.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="config" id="config">Configuring the Chain</a></h2> + <p>There are three stages to configuring a filter chain with + <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code>. For details of the directives, see below.</p> + + <dl> + <dt>Declare Filters</dt> + <dd>The <code class="directive"><a href="#filterdeclare">FilterDeclare</a></code> directive + declares a filter, assigning it a name and filter type. Required + only if the filter is not the default type AP_FTYPE_RESOURCE.</dd> + + <dt>Register Providers</dt> + <dd>The <code class="directive"><a href="#filterprovider">FilterProvider</a></code> + directive registers a provider with a filter. The filter may have + been declared with <code class="directive"><a href="#filterdeclare">FilterDeclare</a></code>; if not, FilterProvider will implicitly + declare it with the default type AP_FTYPE_RESOURCE. The provider + must have been + registered with <code>ap_register_output_filter</code> by some module. + The final argument to <code class="directive"><a href="#filterprovider">FilterProvider</a></code> is an expression: the provider will be + selected to run for a request if and only if the expression evaluates + to true. The expression may evaluate HTTP request or response + headers, environment variables, or the Handler used by this request. + Unlike earlier versions, mod_filter now supports complex expressions + involving multiple criteria with AND / OR logic (&& / ||) + 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'" +<Location /image-filter> + FilterChain unpack downsample repack +</Location></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"> en </a></p> diff --git a/docs/manual/mod/mod_firehose.html.en b/docs/manual/mod/mod_firehose.html.en index 570e943898..222f0f0ce7 100644 --- a/docs/manual/mod/mod_firehose.html.en +++ b/docs/manual/mod/mod_firehose.html.en @@ -70,96 +70,6 @@ <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 = <up to 16 byte hex fragment length> - timestamp = <up to 16 byte hex timestamp microseconds since 1970> - request = "<" - response = ">" - uuid = <formatted uuid of the connection> - count = <hex fragment number in the connection> - - body = <the binary content of the fragment> - - SPC = <a single space> - CRLF = <a carriage return, followed by a line feed></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> @@ -273,6 +183,96 @@ later.</td></tr> </div> </div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="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 = <up to 16 byte hex fragment length> + timestamp = <up to 16 byte hex timestamp microseconds since 1970> + request = "<" + response = ">" + uuid = <formatted uuid of the connection> + count = <hex fragment number in the connection> + + body = <the binary content of the fragment> + + SPC = <a single space> + CRLF = <a carriage return, followed by a line feed></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"> <p><span>Available Languages: </span><a href="../en/mod/mod_firehose.html" title="English"> en </a></p> diff --git a/docs/manual/mod/mod_headers.html.en b/docs/manual/mod/mod_headers.html.en index 54407dd4bf..7d3b7a456f 100644 --- a/docs/manual/mod/mod_headers.html.en +++ b/docs/manual/mod/mod_headers.html.en @@ -52,158 +52,6 @@ headers</td></tr> <li><img alt="" src="../images/down.gif" /> <a href="#examples">Examples</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="order" id="order">Order of Processing</a></h2> - - <p>The directives provided by <code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> can - occur almost anywhere within the server configuration, and can be - limited in scope by enclosing them in <a href="../sections.html">configuration sections</a>.</p> - - <p>Order of processing is important and is affected both by the - order in the configuration file and by placement in <a href="../sections.html#mergin">configuration sections</a>. These - two directives have a different effect if reversed:</p> - - <pre class="prettyprint lang-config">RequestHeader append MirrorID "mirror 12" -RequestHeader unset MirrorID</pre> - - - <p>This way round, the <code>MirrorID</code> header is not set. If - reversed, the MirrorID header is set to "mirror 12".</p> -</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="early" id="early">Early and Late Processing</a></h2> - <p><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> can be applied either early or late - in the request. The normal mode is late, when <em>Request</em> Headers are - set immediately before running the content generator and <em>Response</em> - Headers just as the response is sent down the wire. Always use - Late mode in an operational server.</p> - - <p>Early mode is designed as a test/debugging aid for developers. - Directives defined using the <code>early</code> keyword are set - right at the beginning of processing the request. This means - they can be used to simulate different requests and set up test - cases, but it also means that headers may be changed at any time - by other modules before generating a Response.</p> - - <p>Because early directives are processed before the request path's - configuration is traversed, early headers can only be set in a - main server or virtual host context. Early directives cannot depend - on a request path, so they will fail in contexts such as - <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> or - <code class="directive"><a href="../mod/core.html#location"><Location></a></code>.</p> -</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="examples" id="examples">Examples</a></h2> - - <ol> - <li> - Copy all request headers that begin with "TS" to the - response headers: - - <pre class="prettyprint lang-config">Header echo ^TS</pre> - - </li> - - <li> - Add a header, <code>MyHeader</code>, to the response including a - timestamp for when the request was received and how long it - took to begin serving the request. This header can be used by - the client to intuit load on the server or in isolating - bottlenecks between the client and the server. - - <pre class="prettyprint lang-config">Header set MyHeader "%D %t"</pre> - - - <p>results in this header being added to the response:</p> - - <div class="example"><p><code> - MyHeader: D=3775428 t=991424704447256 - </code></p></div> - </li> - - <li> - Say hello to Joe - - <pre class="prettyprint lang-config">Header set MyHeader "Hello Joe. It took %D microseconds for Apache to serve this request."</pre> - - - <p>results in this header being added to the response:</p> - - <div class="example"><p><code> - MyHeader: Hello Joe. It took D=3775428 microseconds for Apache - to serve this request. - </code></p></div> - </li> - - <li> - Conditionally send <code>MyHeader</code> on the response if and - only if header <code>MyRequestHeader</code> is present on the request. - This is useful for constructing headers in response to some client - stimulus. Note that this example requires the services of the - <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> module. - - <pre class="prettyprint lang-config">SetEnvIf MyRequestHeader myvalue HAVE_MyRequestHeader -Header set MyHeader "%D %t mytext" env=HAVE_MyRequestHeader</pre> - - - <p>If the header <code>MyRequestHeader: myvalue</code> is present on - the HTTP request, the response will contain the following header:</p> - - <div class="example"><p><code> - MyHeader: D=3775428 t=991424704447256 mytext - </code></p></div> - </li> - - <li> - Enable DAV to work with Apache running HTTP through SSL hardware - (<a href="http://svn.haxx.se/users/archive-2006-03/0549.shtml">problem - description</a>) by replacing <var>https:</var> with - <var>http:</var> in the <var>Destination</var> header: - - <pre class="prettyprint lang-config">RequestHeader edit Destination ^https: http: early</pre> - - </li> - - <li> - Set the same header value under multiple nonexclusive conditions, - but do not duplicate the value in the final header. - If all of the following conditions applied to a request (i.e., - if the <code>CGI</code>, <code>NO_CACHE</code> and - <code>NO_STORE</code> environment variables all existed for the - request): - - <pre class="prettyprint lang-config">Header merge Cache-Control no-cache env=CGI -Header merge Cache-Control no-cache env=NO_CACHE -Header merge Cache-Control no-store env=NO_STORE</pre> - - - <p>then the response would contain the following header:</p> - - <div class="example"><p><code> - Cache-Control: no-cache, no-store - </code></p></div> - - <p>If <code>append</code> was used instead of <code>merge</code>, - then the response would contain the following header:</p> - - <div class="example"><p><code> - Cache-Control: no-cache, no-cache, no-store - </code></p></div> - </li> - <li> - Set a test cookie if and only if the client didn't send us a cookie - <pre class="prettyprint lang-config">Header set Set-Cookie testcookie "expr=-z %{req:Cookie}"</pre> - - </li> - <li> - Append a Caching header for responses with a HTTP status code of 200 - <pre class="prettyprint lang-config">Header append Cache-Control s-maxage=600 "expr=%{REQUEST_STATUS} == 200"</pre> - - </li> - - </ol> -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="Header" id="Header">Header</a> <a name="header" id="header">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure HTTP response headers</td></tr> @@ -544,6 +392,158 @@ available in 2.4.10 and later</td></tr> input filters to be overridden or modified.</p> </div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="order" id="order">Order of Processing</a></h2> + + <p>The directives provided by <code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> can + occur almost anywhere within the server configuration, and can be + limited in scope by enclosing them in <a href="../sections.html">configuration sections</a>.</p> + + <p>Order of processing is important and is affected both by the + order in the configuration file and by placement in <a href="../sections.html#mergin">configuration sections</a>. These + two directives have a different effect if reversed:</p> + + <pre class="prettyprint lang-config">RequestHeader append MirrorID "mirror 12" +RequestHeader unset MirrorID</pre> + + + <p>This way round, the <code>MirrorID</code> header is not set. If + reversed, the MirrorID header is set to "mirror 12".</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="early" id="early">Early and Late Processing</a></h2> + <p><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> can be applied either early or late + in the request. The normal mode is late, when <em>Request</em> Headers are + set immediately before running the content generator and <em>Response</em> + Headers just as the response is sent down the wire. Always use + Late mode in an operational server.</p> + + <p>Early mode is designed as a test/debugging aid for developers. + Directives defined using the <code>early</code> keyword are set + right at the beginning of processing the request. This means + they can be used to simulate different requests and set up test + cases, but it also means that headers may be changed at any time + by other modules before generating a Response.</p> + + <p>Because early directives are processed before the request path's + configuration is traversed, early headers can only be set in a + main server or virtual host context. Early directives cannot depend + on a request path, so they will fail in contexts such as + <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> or + <code class="directive"><a href="../mod/core.html#location"><Location></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"> en </a> | diff --git a/docs/manual/mod/mod_headers.html.fr b/docs/manual/mod/mod_headers.html.fr index d618e9ce22..8b787e7ae0 100644 --- a/docs/manual/mod/mod_headers.html.fr +++ b/docs/manual/mod/mod_headers.html.fr @@ -53,173 +53,6 @@ tardif</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="order" id="order">Chronologie du traitement</a></h2> - - <p>Les directives fournies par <code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> peuvent - s'insrer presque partout dans la configuration du serveur, et on - peut limiter leur porte en les plaant dans des <a href="../sections.html">sections de configuration</a>.</p> - - <p>La chronologie du traitement est importante et est affecte 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 diffrent 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-tte <code>MirrorID</code> n'est pas dfini. - Si l'ordre des directives tait invers, l'en-tte - <code>MirrorID</code> serait dfini "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 prcoce et traitement -tardif</a></h2> - <p><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> peut agir soir prcocement, soit - tardivement au niveau de la requte. Le mode normal est le mode - tardif, lorsque les en-ttes de <em>requte</em> sont dfinis, immdiatement - avant l'excution du gnrateur de contenu, et pour les en-ttes de - <em>rponse</em>, juste au moment o la rponse est envoye sur le rseau. - Utilisez toujours le mode tardif sur un serveur en production.</p> - - <p>Le mode prcoce a t conu des fins d'aide aux tests et au - dbogage pour les dveloppeurs. Les directives dfinies en utilisant - le mot-cl <code>early</code> sont censes agir au tout dbut du - traitement de la requte. Cela signifie que l'on peut les utiliser - pour simuler diffrentes requtes et dfinir des situations de test, - tout en gardant l'esprit que les en-ttes peuvent tre modifis - tout moment par d'autres modules avant que le rponse ne soit - gnre.</p> - - <p>Comme les directives prcoces sont traites avant que le - chemin de la requte ne soit parcouru, les en-ttes - prcoces ne peuvent tre dfinis que dans un contexte de serveur - principal ou de serveur virtuel. Les directives prcoces ne peuvent - pas dpendre d'un chemin de requte, si bien qu'elles choueront - dans des contextes tels que <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> ou <code class="directive"><a href="../mod/core.html#location"><Location></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-ttes de requte qui commencent par "TS" vers - les en-ttes de la rponse : - - <pre class="prettyprint lang-config">Header echo ^TS</pre> - - </li> - - <li> - Ajoute la rponse un en-tte, <code>mon-en-tte</code>, qui - contient un horodatage permettant de dterminer le moment o la - requte a t reue, et le temps qui s'est coul jusqu' ce que - la requte ait commenc tre servie. Cet en-tte 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-tte "%D %t"</pre> - - - <p>le rsultat est l'ajout la rponse d'un en-tte du type :</p> - - <div class="example"><p><code> - mon-en-tte: D=3775428 t=991424704447256 - </code></p></div> - </li> - - <li> - Dit Bonjour Joe - - <div class="example"><p><code> - Header set mon-en-tte "Bonjour Joe. Il a fallu %D microsecondes \<br /> - Apache pour servir cette requte." - </code></p></div> - - <p>le rsultat est l'ajout la rponse d'un en-tte du type :</p> - - <pre class="prettyprint lang-config"> Header set MyHeader "Bonjour Joe. Il a fallu D=3775428 microsecondes Apache - pour servir cette requte."</pre> - - </li> - - <li> - Ajoute l'en-tte <code>mon-en-tte</code> la rponse si et - seulement si l'en-tte <code>mon-en-tte-requte</code> est - prsent dans la requte. Ceci peut s'avrer utile pour gnrer - des en-ttes de rponse " la tte du client". Notez que cet - exemple ncessite 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-tte <code>mon-en-tte-requte: mavaleur</code> est - prsent dans la requte HTTP, la rponse contiendra un en-tte - du type :</p> - - <div class="example"><p><code> - mon-en-tte: 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 problme</a>) en remplaant <var>https:</var> par - <var>http:</var> dans l'en-tte <var>Destination</var> : - - <pre class="prettyprint lang-config">RequestHeader edit Destination ^https: http: early</pre> - - </li> - - <li> - Dfinit la valeur d'un mme en-tte sous de multiples conditions - non exclusives, mais ne duplique pas une valeur dj dfinie - dans l'en-tte qui en rsulte. Si toutes les conditions - suivantes sont satisfaites pour une requte (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 - requte) : - - <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 rponse contiendra l'en-tte 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 rponse aurait contenu l'en-tte suivant - :</p> - - <div class="example"><p><code> - Cache-Control: no-cache, no-cache, no-store - </code></p></div> - </li> - <li> - Dfinit 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-tte de mise en cache pour les rponses avec un - code d'tat HTTP de 200 - <pre class="prettyprint lang-config">Header append Cache-Control s-maxage=600 "expr=%{REQUEST_STATUS} == 200"</pre> - - </li> - - </ol> -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="header" id="header">Directive</a> <a name="Header" id="Header">Header</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure les en-ttes d'une rponse HTTP</td></tr> @@ -605,6 +438,173 @@ version 2.4.10</td></tr> d'Apache.</p> </div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="order" id="order">Chronologie du traitement</a></h2> + + <p>Les directives fournies par <code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> peuvent + s'insrer presque partout dans la configuration du serveur, et on + peut limiter leur porte en les plaant dans des <a href="../sections.html">sections de configuration</a>.</p> + + <p>La chronologie du traitement est importante et est affecte 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 diffrent 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-tte <code>MirrorID</code> n'est pas dfini. + Si l'ordre des directives tait invers, l'en-tte + <code>MirrorID</code> serait dfini "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 prcoce et traitement +tardif</a></h2> + <p><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> peut agir soir prcocement, soit + tardivement au niveau de la requte. Le mode normal est le mode + tardif, lorsque les en-ttes de <em>requte</em> sont dfinis, immdiatement + avant l'excution du gnrateur de contenu, et pour les en-ttes de + <em>rponse</em>, juste au moment o la rponse est envoye sur le rseau. + Utilisez toujours le mode tardif sur un serveur en production.</p> + + <p>Le mode prcoce a t conu des fins d'aide aux tests et au + dbogage pour les dveloppeurs. Les directives dfinies en utilisant + le mot-cl <code>early</code> sont censes agir au tout dbut du + traitement de la requte. Cela signifie que l'on peut les utiliser + pour simuler diffrentes requtes et dfinir des situations de test, + tout en gardant l'esprit que les en-ttes peuvent tre modifis + tout moment par d'autres modules avant que le rponse ne soit + gnre.</p> + + <p>Comme les directives prcoces sont traites avant que le + chemin de la requte ne soit parcouru, les en-ttes + prcoces ne peuvent tre dfinis que dans un contexte de serveur + principal ou de serveur virtuel. Les directives prcoces ne peuvent + pas dpendre d'un chemin de requte, si bien qu'elles choueront + dans des contextes tels que <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> ou <code class="directive"><a href="../mod/core.html#location"><Location></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-ttes de requte qui commencent par "TS" vers + les en-ttes de la rponse : + + <pre class="prettyprint lang-config">Header echo ^TS</pre> + + </li> + + <li> + Ajoute la rponse un en-tte, <code>mon-en-tte</code>, qui + contient un horodatage permettant de dterminer le moment o la + requte a t reue, et le temps qui s'est coul jusqu' ce que + la requte ait commenc tre servie. Cet en-tte 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-tte "%D %t"</pre> + + + <p>le rsultat est l'ajout la rponse d'un en-tte du type :</p> + + <div class="example"><p><code> + mon-en-tte: D=3775428 t=991424704447256 + </code></p></div> + </li> + + <li> + Dit Bonjour Joe + + <div class="example"><p><code> + Header set mon-en-tte "Bonjour Joe. Il a fallu %D microsecondes \<br /> + Apache pour servir cette requte." + </code></p></div> + + <p>le rsultat est l'ajout la rponse d'un en-tte du type :</p> + + <pre class="prettyprint lang-config"> Header set MyHeader "Bonjour Joe. Il a fallu D=3775428 microsecondes Apache + pour servir cette requte."</pre> + + </li> + + <li> + Ajoute l'en-tte <code>mon-en-tte</code> la rponse si et + seulement si l'en-tte <code>mon-en-tte-requte</code> est + prsent dans la requte. Ceci peut s'avrer utile pour gnrer + des en-ttes de rponse " la tte du client". Notez que cet + exemple ncessite 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-tte <code>mon-en-tte-requte: mavaleur</code> est + prsent dans la requte HTTP, la rponse contiendra un en-tte + du type :</p> + + <div class="example"><p><code> + mon-en-tte: 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 problme</a>) en remplaant <var>https:</var> par + <var>http:</var> dans l'en-tte <var>Destination</var> : + + <pre class="prettyprint lang-config">RequestHeader edit Destination ^https: http: early</pre> + + </li> + + <li> + Dfinit la valeur d'un mme en-tte sous de multiples conditions + non exclusives, mais ne duplique pas une valeur dj dfinie + dans l'en-tte qui en rsulte. Si toutes les conditions + suivantes sont satisfaites pour une requte (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 + requte) : + + <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 rponse contiendra l'en-tte 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 rponse aurait contenu l'en-tte suivant + :</p> + + <div class="example"><p><code> + Cache-Control: no-cache, no-cache, no-store + </code></p></div> + </li> + <li> + Dfinit 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-tte de mise en cache pour les rponses 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"> en </a> | diff --git a/docs/manual/mod/mod_headers.html.ja.utf8 b/docs/manual/mod/mod_headers.html.ja.utf8 index 86aef298f0..c0240ca021 100644 --- a/docs/manual/mod/mod_headers.html.ja.utf8 +++ b/docs/manual/mod/mod_headers.html.ja.utf8 @@ -57,109 +57,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#examples">例</a></li> </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="order" id="order">処理の順番</a></h2> - - <p><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> のディレクティブはサーバ設定のほぼどこにでも - 書くことができ、影響する範囲を<a href="../sections.html">設定用セクション</a>で囲むことで限定する - ことができます。</p> - - <p>処理の順番は重要で、設定ファイル中の順番と、<a href="../sections.html">設定用セクション</a>内の位置との両方に - 影響されます。以下の二つのヘッダは順番が逆になると - 違う結果になります:</p> - - <div class="example"><p><code> - RequestHeader append MirrorID "mirror 12"<br /> - RequestHeader unset MirrorID - </code></p></div> - - <p>この順番の場合は、<code>MirrorID</code> ヘッダは設定されません。 - 逆になっていると、MirrorID ヘッダは "mirror 12" に設定されます。</p> -</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="early" id="early">早期処理、後期処理</a></h2> - <p><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> では、リクエストの早期か後期かの - どちらで適用するかを選べます。通常は後期モードで、 - コンテンツ生成が実行される直前にリクエストヘッダがセットされ、 - レスポンスとして送出される直前にレスポンスヘッダがセットされます。 - 運用中のサーバでは必ず後期モードを使ってください。</p> - - <p>早期モードは開発者向けのテスト/デバッグ用に設計されています。 - <code>early</code> キーワード指定されたディレクティブによって、 - リクエスト処理の開始地点になります。 - つまり、異なるリクエストを試したりテストケースをセットアップするのに - 活用できる一方で、レスポンスを生成する前に他のモジュールによって - ヘッダが書き換えられてしまうかもしれないということを意味します。</p> - - <p>early ディレクティブではリクエストパスの設定が解決される前に - 処理されるので、メインサーバかバーチャルホストコンテキストでのみ、 - 早期ヘッダをセットできます。early ディレクティブはリクエストパスに - 依存することはできませんので、<code><Directory></code> や - <code><Location></code> といったコンテキスト内では使用 - できません。</p> -</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="examples" id="examples">例</a></h2> - - <ol> - <li>リクエストヘッダ中の "TS" で始まるフィールドをすべて応答ヘッダに - コピーします: - <div class="example"><p><code> - Header echo ^TS - </code></p></div> - </li> - - <li> - リクエストを受け付けた時刻とリクエストを処理した時間を入れたヘッダ、 - <code>MyHeader</code> を応答に追加します。このヘッダはクライアントが - サーバの負荷を直観的に知るためや、クライアント-サーバ間の - ボトルネックを調べるために使うことができます。 - - <div class="example"><p><code> - Header add MyHeader "%D %t" - </code></p></div> - - <p>上記の設定では、以下のようなヘッダが応答に追加されることになります:</p> - - <div class="example"><p><code> - MyHeader: D=3775428 t=991424704447256 - </code></p></div> - </li> - - <li> - Joe にあいさつをします: - - <div class="example"><p><code> - Header add MyHeader "Hello Joe. It took %D microseconds for Apache to serve this request." - </code></p></div> - - <p>以下のようなヘッダが応答に追加されることになります</p> - - <div class="example"><p><code> - MyHeader: Hello Joe. It took D=3775428 microseconds for Apache to serve this request. - </code></p></div> - </li> - - <li>リクエストに "MyRequestHeader" があるときに限り <code>MyHeader</code> を応答に - 付けます。これは、クライアントの要求に応えてヘッダを作成するときに - 役に立ちます。この例では <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> モジュールが必要なことに - 注意してください。 - - <div class="example"><p><code> - SetEnvIf MyRequestHeader value HAVE_MyRequestHeader<br /> - Header add MyHeader "%D %t mytext" env=HAVE_MyRequestHeader - </code></p></div> - - <p>もし HTTP リクエストに <code>MyRequestHeader: value</code> ヘッダが - あると、応答には以下のようなヘッダが付加されます。</p> - - <div class="example"><p><code> - MyHeader: D=3775428 t=991424704447256 mytext - </code></p></div> - </li> - </ol> -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="Header" id="Header">Header</a> <a name="header" id="header">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>HTTP 応答ヘッダの設定</td></tr> @@ -344,6 +241,109 @@ 生成されたヘッダを上書きしたり修正したりできるようになっています。</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><Directory></code> や + <code><Location></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"> en </a> | diff --git a/docs/manual/mod/mod_headers.html.ko.euc-kr b/docs/manual/mod/mod_headers.html.ko.euc-kr index 2d971a65e0..e0f254d950 100644 --- a/docs/manual/mod/mod_headers.html.ko.euc-kr +++ b/docs/manual/mod/mod_headers.html.ko.euc-kr @@ -54,111 +54,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#examples"></a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="order" id="order">ó </a></h2> - - <p><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> ϴ þ - ҿ , <a href="../sections.html"> </a> μ þ - ִ.</p> - - <p>ó ߿ϸ, Ͽ <a href="../sections.html#mergin"> </a> ´. - þ ݴ ȿ .</p> - - <div class="example"><p><code> - RequestHeader append MirrorID "mirror 12"<br /> - RequestHeader unset MirrorID - </code></p></div> - - <p> <code>MirrorID</code> - ʴ´. ݴ MirrorID "mirror 12" Ѵ.</p> -</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="early" id="early"≯(early) ó (late) ó</a></h2> - <p><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> û ʱ⳪ ߿ - ִ. ڸ ϱ û - ϰ Ʈ ϴ (late) - Ѵ. ϴ - ϶.</p> - - <p≯(early) ڸ ˻/ . - <code>early</code> Ű带 Ͽ þ û - óϱ Ҷ Ѵ. , ٸ û ǽϰų - ˻縦 ϱ , ϱ ٸ - ҽÿ ִ.</p> - - <p>ûο 캸 ̸ þ - óϱ ̸ þ ּ̳ ȣƮ - ҿ ִ. ̸ þ ûο - <code><Directory></code> - <code><Location></code> ҿ - .</p> -</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="examples" id="examples"></a></h2> - - <ol> - <li> - "TS" ϴ û Ѵ. - - <div class="example"><p><code> - Header echo ^TS - </code></p></div> - </li> - - <li> - 信 û ð û ϴµ ɸ ð - ˷ִ <code>MyHeader</code> ߰Ѵ. Ŭ̾Ʈ - ϸ ϰų Ŭ̾Ʈ - ã ִ. - - <div class="example"><p><code> - Header add MyHeader "%D %t" - </code></p></div> - - <p>信 .</p> - - <div class="example"><p><code> - MyHeader: D=3775428 t=991424704447256 - </code></p></div> - </li> - - <li> - Joe ȳ - - <div class="example"><p><code> - Header add MyHeader "Hello Joe. It took %D microseconds \<br /> - for Apache to serve this request." - </code></p></div> - - <p>信 .</p> - - <div class="example"><p><code> - MyHeader: Hello Joe. It took D=3775428 microseconds for Apache - to serve this request. - </code></p></div> - </li> - - <li> - û "MyRequestHeader" ִ 쿡 - 信 <code>MyHeader</code> . Ư Ŭ̾ƮԸ - 信 ߰Ҷ ϴ. Ϸ - <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> ʿϴ. - - <div class="example"><p><code> - SetEnvIf MyRequestHeader value HAVE_MyRequestHeader<br /> - Header add MyHeader "%D %t mytext" env=HAVE_MyRequestHeader<br /> - </code></p></div> - - <p>HTTP û <code>MyRequestHeader: value</code> - ִٸ, 信 .</p> - - <div class="example"><p><code> - MyHeader: D=3775428 t=991424704447256 mytext - </code></p></div> - </li> - </ol> -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="Header" id="Header">Header</a> <a name="header" id="header">þ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">:</a></th><td>HTTP Ѵ</td></tr> @@ -332,6 +227,111 @@ ִ.</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><Directory></code> + <code><Location></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"> en </a> | diff --git a/docs/manual/mod/mod_heartbeat.html.en b/docs/manual/mod/mod_heartbeat.html.en index 9694c18fac..493920f96b 100644 --- a/docs/manual/mod/mod_heartbeat.html.en +++ b/docs/manual/mod/mod_heartbeat.html.en @@ -60,6 +60,25 @@ of <code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</ <li><img alt="" src="../images/down.gif" /> <a href="#consuming">Consuming mod_heartbeat Output</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="HeartbeatAddress" id="HeartbeatAddress">HeartbeatAddress</a> <a name="heartbeataddress" id="heartbeataddress">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Multicast address for heartbeat packets</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>HeartbeatAddress <var>addr:port</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>disabled</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_heartbeat</td></tr> +</table> +<p>The <code class="directive">HeartbeatAddress</code> directive specifies the +multicast address to which <code class="module"><a href="../mod/mod_heartbeat.html">mod_heartbeat</a></code> will send +status information. This address will usually correspond to a configured + <code class="directive"><a href="../mod/mod_heartmonitor.html#heartbeatlisten">HeartbeatListen</a></code> on a +frontend proxy system.</p> +<pre class="prettyprint lang-config">HeartbeatAddress 239.0.0.1:27999</pre> + + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="consuming" id="consuming">Consuming mod_heartbeat Output</a></h2> @@ -80,25 +99,6 @@ v=1&ready=75&busy=0 </p> </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"> <p><span>Available Languages: </span><a href="../en/mod/mod_heartbeat.html" title="English"> en </a></p> diff --git a/docs/manual/mod/mod_heartmonitor.html.en b/docs/manual/mod/mod_heartmonitor.html.en index 4d6ffb07b0..9207378d9e 100644 --- a/docs/manual/mod/mod_heartmonitor.html.en +++ b/docs/manual/mod/mod_heartmonitor.html.en @@ -60,7 +60,6 @@ use <code class="module"><a href="../mod/mod_slotmem_shm.html">mod_slotmem_shm</ <li><img alt="" src="../images/down.gif" /> <a href="#heartbeatstorage">HeartbeatStorage</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="HeartbeatListen" id="HeartbeatListen">HeartbeatListen</a> <a name="heartbeatlisten" id="heartbeatlisten">Directive</a></h2> <table class="directive"> @@ -115,6 +114,7 @@ heartbeat requests to this server</td></tr> <code class="module"><a href="../mod/mod_slotmem_shm.html">mod_slotmem_shm</a></code> is not loaded.</p> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_heartmonitor.html" title="English"> en </a></p> diff --git a/docs/manual/mod/mod_ident.html.en b/docs/manual/mod/mod_ident.html.en index ad48c18505..38d65dccf7 100644 --- a/docs/manual/mod/mod_ident.html.en +++ b/docs/manual/mod/mod_ident.html.en @@ -47,7 +47,6 @@ <ul class="seealso"> <li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="IdentityCheck" id="IdentityCheck">IdentityCheck</a> <a name="identitycheck" id="identitycheck">Directive</a></h2> <table class="directive"> @@ -94,6 +93,7 @@ user</td></tr> timeout value according to your local network speed.</p> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_ident.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_ident.html.fr b/docs/manual/mod/mod_ident.html.fr index 77eb07f5d8..985e026195 100644 --- a/docs/manual/mod/mod_ident.html.fr +++ b/docs/manual/mod/mod_ident.html.fr @@ -49,7 +49,6 @@ <ul class="seealso"> <li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">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"> @@ -102,6 +101,7 @@ ident</td></tr> valeur de ce dlai en fonction du dbit de votre rseau 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"> en </a> | diff --git a/docs/manual/mod/mod_ident.html.ja.utf8 b/docs/manual/mod/mod_ident.html.ja.utf8 index 989cee6dd1..f33a34b8d6 100644 --- a/docs/manual/mod/mod_ident.html.ja.utf8 +++ b/docs/manual/mod/mod_ident.html.ja.utf8 @@ -47,7 +47,6 @@ <ul class="seealso"> <li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="IdentityCheck" id="IdentityCheck">IdentityCheck</a> <a name="identitycheck" id="identitycheck">ディレクティブ</a></h2> <table class="directive"> @@ -94,6 +93,7 @@ 合わせてタイムアウト値を調節するのがよいでしょう。</p> </div> + </div> <div class="bottomlang"> <p><span>翻訳済み言語: </span><a href="../en/mod/mod_ident.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_ident.html.ko.euc-kr b/docs/manual/mod/mod_ident.html.ko.euc-kr index e1ad5da038..846d1cddaa 100644 --- a/docs/manual/mod/mod_ident.html.ko.euc-kr +++ b/docs/manual/mod/mod_ident.html.ko.euc-kr @@ -51,7 +51,6 @@ <ul class="seealso"> <li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="IdentityCheck" id="IdentityCheck">IdentityCheck</a> <a name="identitycheck" id="identitycheck">þ</a></h2> <table class="directive"> @@ -95,6 +94,7 @@ ִ.</p> </div> + </div> <div class="bottomlang"> <p><span> : </span><a href="../en/mod/mod_ident.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_imagemap.html.en b/docs/manual/mod/mod_imagemap.html.en index 51bde2087f..9a6bc349f6 100644 --- a/docs/manual/mod/mod_imagemap.html.en +++ b/docs/manual/mod/mod_imagemap.html.en @@ -69,6 +69,94 @@ <li><img alt="" src="../images/down.gif" /> <a href="#referencing">Referencing your mapfile</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ImapBase" id="ImapBase">ImapBase</a> <a name="imapbase" id="imapbase">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Default <code>base</code> for imagemap files</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ImapBase map|referer|<var>URL</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ImapBase http://servername/</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Indexes</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_imagemap</td></tr> +</table> + <p>The <code class="directive">ImapBase</code> directive sets the default + <code>base</code> used in the imagemap files. Its value is + overridden by a <code>base</code> directive within the imagemap + file. If not present, the <code>base</code> defaults to + <code>http://<var>servername</var>/</code>.</p> + +<h3>See also</h3> +<ul> +<li><code class="directive"><a href="../mod/core.html#usecanonicalname">UseCanonicalName</a></code></li> +</ul> +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ImapDefault" id="ImapDefault">ImapDefault</a> <a name="imapdefault" id="imapdefault">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Default action when an imagemap is called with coordinates +that are not explicitly mapped</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ImapDefault error|nocontent|map|referer|<var>URL</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ImapDefault nocontent</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Indexes</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_imagemap</td></tr> +</table> + <p>The <code class="directive">ImapDefault</code> directive sets the default + <code>default</code> used in the imagemap files. Its value is + overridden by a <code>default</code> directive within the + imagemap file. If not present, the <code>default</code> action + is <code>nocontent</code>, which means that a <code>204 No + Content</code> is sent to the client. In this case, the client + should continue to display the original page.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ImapMenu" id="ImapMenu">ImapMenu</a> <a name="imapmenu" id="imapmenu">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Action if no coordinates are given when calling +an imagemap</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ImapMenu none|formatted|semiformatted|unformatted</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ImapMenu formatted</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Indexes</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_imagemap</td></tr> +</table> + <p>The <code class="directive">ImapMenu</code> directive determines the + action taken if an imagemap file is called without valid + coordinates.</p> + + <dl> + <dt><code>none</code></dt> + <dd>If ImapMenu is <code>none</code>, no menu is generated, + and the <code>default</code> action is performed.</dd> + + <dt><code>formatted</code></dt> + <dd>A <code>formatted</code> menu is the simplest menu. + Comments in the imagemap file are ignored. A level one header + is printed, then an hrule, then the links each on a separate + line. The menu has a consistent, plain look close to that of + a directory listing.</dd> + + <dt><code>semiformatted</code></dt> + <dd>In the <code>semiformatted</code> menu, comments are + printed where they occur in the imagemap file. Blank lines + are turned into HTML breaks. No header or hrule is printed, + but otherwise the menu is the same as a + <code>formatted</code> menu.</dd> + + <dt><code>unformatted</code></dt> + <dd>Comments are printed, blank lines are ignored. Nothing is + printed that does not appear in the imagemap file. All breaks + and headers must be included as comments in the imagemap + file. This gives you the most flexibility over the appearance + of your menus, but requires you to treat your map files as + HTML instead of plaintext.</dd> + </dl> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="features" id="features">New Features</a></h2> @@ -291,94 +379,6 @@ </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"> <p><span>Available Languages: </span><a href="../en/mod/mod_imagemap.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_imagemap.html.ko.euc-kr b/docs/manual/mod/mod_imagemap.html.ko.euc-kr index 5b29a2ddce..2c99fa5488 100644 --- a/docs/manual/mod/mod_imagemap.html.ko.euc-kr +++ b/docs/manual/mod/mod_imagemap.html.ko.euc-kr @@ -66,6 +66,88 @@ <li><img alt="" src="../images/down.gif" /> <a href="#referencing"> ϱ</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ImapBase" id="ImapBase">ImapBase</a> <a name="imapbase" id="imapbase">þ</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">:</a></th><td>̹ Ͽ <code>base</code> ⺻</td></tr> +<tr><th><a href="directive-dict.html#Syntax">:</a></th><td><code>ImapBase map|referer|<var>URL</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">⺻:</a></th><td><code>ImapBase http://servername/</code></td></tr> +<tr><th><a href="directive-dict.html#Context">:</a></th><td>ּ, ȣƮ, directory, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Override">Override ɼ:</a></th><td>Indexes</td></tr> +<tr><th><a href="directive-dict.html#Status">:</a></th><td>Base</td></tr> +<tr><th><a href="directive-dict.html#Module">:</a></th><td>mod_imagemap</td></tr> +</table> + <p><code class="directive">ImapBase</code> þ ̹ Ͽ + <code>base</code> ⺻ Ѵ. ̹ + ȿ <code>base</code> þ ϸ ⼭ + Ѵ. ٸ, <code>base</code> ⺻ + <code>http://<var>servername</var>/</code>̴.</p> + +<h3></h3> +<ul> +<li><code class="directive"><a href="../mod/core.html#usecanonicalname">UseCanonicalName</a></code></li> +</ul> +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ImapDefault" id="ImapDefault">ImapDefault</a> <a name="imapdefault" id="imapdefault">þ</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">:</a></th><td>̹ʿ ش ʴ ǥ + ⺻ ൿ</td></tr> +<tr><th><a href="directive-dict.html#Syntax">:</a></th><td><code>ImapDefault error|nocontent|map|referer|<var>URL</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">⺻:</a></th><td><code>ImapDefault nocontent</code></td></tr> +<tr><th><a href="directive-dict.html#Context">:</a></th><td>ּ, ȣƮ, directory, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Override">Override ɼ:</a></th><td>Indexes</td></tr> +<tr><th><a href="directive-dict.html#Status">:</a></th><td>Base</td></tr> +<tr><th><a href="directive-dict.html#Module">:</a></th><td>mod_imagemap</td></tr> +</table> + <p><code class="directive">ImapDefault</code> þ ̹ + Ͽ <code>default</code> ⺻ Ѵ. + ̹ ȿ <code>default</code> þ ϸ + ⼭ Ѵ. ٸ, <code>default</code> + ൿ Ŭ̾Ʈ <code>204 No Content</code> + <code>nocontent</code>̴. Ŭ̾Ʈ + ״ Ѵ.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ImapMenu" id="ImapMenu">ImapMenu</a> <a name="imapmenu" id="imapmenu">þ</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">:</a></th><td>ǥ ̹ û ൿ</td></tr> +<tr><th><a href="directive-dict.html#Syntax">:</a></th><td><code>ImapMenu none|formatted|semiformatted|unformatted</code></td></tr> +<tr><th><a href="directive-dict.html#Context">:</a></th><td>ּ, ȣƮ, directory, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Override">Override ɼ:</a></th><td>Indexes</td></tr> +<tr><th><a href="directive-dict.html#Status">:</a></th><td>Base</td></tr> +<tr><th><a href="directive-dict.html#Module">:</a></th><td>mod_imagemap</td></tr> +</table> + <p><code class="directive">ImapMenu</code> þ ̹ Ͽ + ȿ ǥ ൿ Ѵ.</p> + + <dl> + <dt><code>none</code></dt> + <dd>ImapMenu <code>none</code≯, ʰ + <code>default</code> ൿ Ѵ.</dd> + + <dt><code>formatted</code></dt> + <dd><code>formatted</code> . + ̹ ּ Ѵ. ū ǥ + ϰ, ũ پ Ѵ. ϰǰ ϸ, + 丮 ϰ ϴ.</dd> + + <dt><code>semiformatted</code></dt> + <dd><code>semiformatted</code> ̹ Ͽ + ּ Ѵ. HTML ٲ ȯѴ. + ǥ , <code>formatted</code> + .</dd> + + <dt><code>unformatted</code></dt> + <dd>ּ ϰ, Ѵ. ̹ Ͽ + ִ 븸 Ѵ. ̹ ּ ʿ + ٲް ǥ Ѵ. ܰ + ٹ , ̹ ǻ Ϲ + ƴ HTML Ѵ.</dd> + </dl> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="features" id="features">ο </a></h2> @@ -274,88 +356,6 @@ </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"> <p><span> : </span><a href="../en/mod/mod_imagemap.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_include.html.en b/docs/manual/mod/mod_include.html.en index 775cb91a29..17cacb52ab 100644 --- a/docs/manual/mod/mod_include.html.en +++ b/docs/manual/mod/mod_include.html.en @@ -69,6 +69,282 @@ <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 "-->"</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 "%>"</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>"<!-- Error -->"</code> so that + the message is not presented to the user.</p> + + <p>This directive has the same effect as the <code><!--#config + errmsg=<var>message</var> --></code> element.</p> + + <pre class="prettyprint lang-config">SSIErrorMsg "<!-- Error -->"</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> +<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 "<!--#"</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 "<%"<br /> + SSIEndTag "%>"</pre> + + + <p>The example given above, which also specifies a matching + <code class="directive"><a href="#ssiendtag">SSIEndTag</a></code>, will + allow you to use SSI directives as shown in the example + below:</p> + + <div class="example"><h3>SSI directives with alternate start and end tags</h3><p><code> + <%printenv %> + </code></p></div> + +<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>This directive has the same effect as the <code><!--#config + timefmt=<var>formatstring</var> --></code> element.</p> + + <pre class="prettyprint lang-config">SSITimeFormat "%R, %B %d, %Y"</pre> + + + <p>The above directive would cause times to be displayed in the + format "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">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> + + <pre class="prettyprint lang-config">SSIUndefinedEcho "<!-- undef -->"</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="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> + + <dl> + <dt><code>off</code></dt> + <dd>No special treatment of executable files.</dd> + + <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> + + <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. + + <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 <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> + + </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">Enabling Server-Side Includes</a></h2> @@ -802,282 +1078,6 @@ AddOutputFilter INCLUDES .shtml</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="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 "-->"</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 "%>"</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>"<!-- Error -->"</code> so that - the message is not presented to the user.</p> - - <p>This directive has the same effect as the <code><!--#config - errmsg=<var>message</var> --></code> element.</p> - - <pre class="prettyprint lang-config">SSIErrorMsg "<!-- Error -->"</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> -<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 "<!--#"</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 "<%"<br /> - SSIEndTag "%>"</pre> - - - <p>The example given above, which also specifies a matching - <code class="directive"><a href="#ssiendtag">SSIEndTag</a></code>, will - allow you to use SSI directives as shown in the example - below:</p> - - <div class="example"><h3>SSI directives with alternate start and end tags</h3><p><code> - <%printenv %> - </code></p></div> - -<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>This directive has the same effect as the <code><!--#config - timefmt=<var>formatstring</var> --></code> element.</p> - - <pre class="prettyprint lang-config">SSITimeFormat "%R, %B %d, %Y"</pre> - - - <p>The above directive would cause times to be displayed in the - format "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">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> - - <pre class="prettyprint lang-config">SSIUndefinedEcho "<!-- undef -->"</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="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> - - <dl> - <dt><code>off</code></dt> - <dd>No special treatment of executable files.</dd> - - <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> - - <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. - - <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 <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> - - </dd> - </dl> - - -</div> </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_include.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_include.html.ja.utf8 b/docs/manual/mod/mod_include.html.ja.utf8 index 701f64bd2c..ea5ac87b95 100644 --- a/docs/manual/mod/mod_include.html.ja.utf8 +++ b/docs/manual/mod/mod_include.html.ja.utf8 @@ -72,6 +72,223 @@ <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 "-->"</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 "%>" + </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>"<!-- Error -->"</code> + に変えるというようなことを考えるかもしれません。</p> + + <p>このディレクティブは <code><!--#config + errmsg=<var>message</var> --></code> 要素と同じ効果になります。</p> + + <div class="example"><h3>例</h3><p><code> + SSIErrorMsg "<!-- Error -->" + </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 "<!--#"</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 "<%"<br /> + SSIEndTag "%>" + </code></p></div> + + <p>上の例のように対応する + <code class="directive"><a href="#ssiendtag">SSIEndTag</a></code> を併せて使うと、 + 下に示す例のように SSI ディレクティブを使えます:</p> + + <div class="example"><h3>違う開始と終了のタグを使った SSI ディレクティブ</h3><p><code> + <%printenv %> + </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><!--#config + timefmt=<var>formatstring</var> --></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 "<!-- undef -->" + </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> @@ -647,223 +864,6 @@ 正規表現の意味がどうであろうとエスケープは必要です。</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 "-->"</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 "%>" - </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>"<!-- Error -->"</code> - に変えるというようなことを考えるかもしれません。</p> - - <p>このディレクティブは <code><!--#config - errmsg=<var>message</var> --></code> 要素と同じ効果になります。</p> - - <div class="example"><h3>例</h3><p><code> - SSIErrorMsg "<!-- Error -->" - </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 "<!--#"</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 "<%"<br /> - SSIEndTag "%>" - </code></p></div> - - <p>上の例のように対応する - <code class="directive"><a href="#ssiendtag">SSIEndTag</a></code> を併せて使うと、 - 下に示す例のように SSI ディレクティブを使えます:</p> - - <div class="example"><h3>違う開始と終了のタグを使った SSI ディレクティブ</h3><p><code> - <%printenv %> - </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><!--#config - timefmt=<var>formatstring</var> --></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 "<!-- undef -->" - </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"> <p><span>翻訳済み言語: </span><a href="../en/mod/mod_include.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_info.html.en b/docs/manual/mod/mod_info.html.en index 64724a8b8d..e4b1521391 100644 --- a/docs/manual/mod/mod_info.html.en +++ b/docs/manual/mod/mod_info.html.en @@ -70,6 +70,26 @@ configuration</td></tr> <li><img alt="" src="../images/down.gif" /> <a href="#limitations">Known Limitations</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="AddModuleInfo" id="AddModuleInfo">AddModuleInfo</a> <a name="addmoduleinfo" id="addmoduleinfo">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Adds additional information to the module +information displayed by the server-info handler</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AddModuleInfo <var>module-name</var> <var>string</var></code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_info</td></tr> +</table> + <p>This allows the content of <var>string</var> to be shown as + HTML interpreted, <strong>Additional Information</strong> for + the module <var>module-name</var>. Example:</p> + + <pre class="prettyprint lang-config">AddModuleInfo mod_deflate.c 'See <a \ + href="http://httpd.apache.org/docs/trunk/mod/mod_deflate.html">\ + http://httpd.apache.org/docs/trunk/mod/mod_deflate.html</a>'</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 @@ -168,26 +188,6 @@ configuration</td></tr> 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 <a \ - href="http://httpd.apache.org/docs/trunk/mod/mod_deflate.html">\ - http://httpd.apache.org/docs/trunk/mod/mod_deflate.html</a>'</pre> - - -</div> </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_info.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_info.html.fr b/docs/manual/mod/mod_info.html.fr index 9cae75aa5f..fabe6ee2e9 100644 --- a/docs/manual/mod/mod_info.html.fr +++ b/docs/manual/mod/mod_info.html.fr @@ -70,6 +70,26 @@ serveur</td></tr> <li><img alt="" src="../images/down.gif" /> <a href="#limitations">Limitations connues</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="addmoduleinfo" id="addmoduleinfo">Directive</a> <a name="AddModuleInfo" id="AddModuleInfo">AddModuleInfo</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajoute des donnes supplmentaires aux informations de +module affiches 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>chane</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>chane</var> + en tant qu'<strong>Information supplmentaire</strong> interprte + en HTML pour le module <var>nom-module</var>. Exemple :</p> + + <pre class="prettyprint lang-config">AddModuleInfo mod_deflate.c 'See <a \ + href="http://httpd.apache.org/docs/trunk/mod/mod_deflate.html">\ + http://httpd.apache.org/docs/trunk/mod/mod_deflate.html</a>'</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">Problmes lis la scurit</a></h2> <p>Une fois <code class="module"><a href="../mod/mod_info.html">mod_info</a></code> charg dans le serveur, sa @@ -176,26 +196,6 @@ serveur</td></tr> 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 donnes supplmentaires aux informations de -module affiches 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>chane</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>chane</var> - en tant qu'<strong>Information supplmentaire</strong> interprte - en HTML pour le module <var>nom-module</var>. Exemple :</p> - - <pre class="prettyprint lang-config">AddModuleInfo mod_deflate.c 'See <a \ - href="http://httpd.apache.org/docs/trunk/mod/mod_deflate.html">\ - http://httpd.apache.org/docs/trunk/mod/mod_deflate.html</a>'</pre> - - -</div> </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_info.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_info.html.ja.utf8 b/docs/manual/mod/mod_info.html.ja.utf8 index 03c4c45003..35db11dbe2 100644 --- a/docs/manual/mod/mod_info.html.ja.utf8 +++ b/docs/manual/mod/mod_info.html.ja.utf8 @@ -79,6 +79,30 @@ <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 <a \<br /> + <span class="indent"> + href="http://www.apache.org/docs/trunk/mod/mod_deflate.html">\<br /> + http://www.apache.org/docs/trunk/mod/mod_deflate.html</a>' + </span> + </code></p></div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="security" id="security">Security Issues</a></h2> <p>一旦 <code class="module"><a href="../mod/mod_info.html">mod_info</a></code> がサーバに読み込まれると、 @@ -161,30 +185,6 @@ のディレクティブは表示されないかもしれません。</li> </ul> </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 <a \<br /> - <span class="indent"> - href="http://www.apache.org/docs/trunk/mod/mod_deflate.html">\<br /> - http://www.apache.org/docs/trunk/mod/mod_deflate.html</a>' - </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"> en </a> | diff --git a/docs/manual/mod/mod_info.html.ko.euc-kr b/docs/manual/mod/mod_info.html.ko.euc-kr index 26882900d7..3dd9230183 100644 --- a/docs/manual/mod/mod_info.html.ko.euc-kr +++ b/docs/manual/mod/mod_info.html.ko.euc-kr @@ -63,6 +63,29 @@ <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 <a \<br /> + <span class="indent"> + href="http://www.apache.org/docs/trunk/mod/mod_deflate.html">\<br /> + http://www.apache.org/docs/docs/trunk/mod/mod_deflate.html</a>' + </span> + </code></p></div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="security" id="security"> </a></h2> <p>ѹ <code class="module"><a href="../mod/mod_info.html">mod_info</a></code> о̸, 丮 @@ -139,29 +162,6 @@ þ ִ.</li> </ul> </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 <a \<br /> - <span class="indent"> - href="http://www.apache.org/docs/trunk/mod/mod_deflate.html">\<br /> - http://www.apache.org/docs/docs/trunk/mod/mod_deflate.html</a>' - </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"> en </a> | diff --git a/docs/manual/mod/mod_isapi.html.en b/docs/manual/mod/mod_isapi.html.en index 42d9a50ef6..ebec827448 100644 --- a/docs/manual/mod/mod_isapi.html.en +++ b/docs/manual/mod/mod_isapi.html.en @@ -62,6 +62,109 @@ <li><img alt="" src="../images/down.gif" /> <a href="#journal">Programmer's Journal</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ISAPIAppendLogToErrors" id="ISAPIAppendLogToErrors">ISAPIAppendLogToErrors</a> <a name="isapiappendlogtoerrors" id="isapiappendlogtoerrors">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Record <code>HSE_APPEND_LOG_PARAMETER</code> requests from +ISAPI extensions to the error log</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ISAPIAppendLogToErrors on|off</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ISAPIAppendLogToErrors off</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr> +</table> + <p>Record <code>HSE_APPEND_LOG_PARAMETER</code> requests from ISAPI + extensions to the server error log.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ISAPIAppendLogToQuery" id="ISAPIAppendLogToQuery">ISAPIAppendLogToQuery</a> <a name="isapiappendlogtoquery" id="isapiappendlogtoquery">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Record <code>HSE_APPEND_LOG_PARAMETER</code> requests from +ISAPI extensions to the query field</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ISAPIAppendLogToQuery on|off</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ISAPIAppendLogToQuery on</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr> +</table> + <p>Record <code>HSE_APPEND_LOG_PARAMETER</code> requests from ISAPI + extensions to the query field (appended to the <code class="directive"><a href="../mod/mod_log_config.html#customlog">CustomLog</a></code> <code>%q</code> + component).</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ISAPICacheFile" id="ISAPICacheFile">ISAPICacheFile</a> <a name="isapicachefile" id="isapicachefile">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>ISAPI .dll files to be loaded at startup</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ISAPICacheFile <var>file-path</var> [<var>file-path</var>] +...</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr> +</table> + <p>Specifies a space-separated list of file names to be loaded + when the Apache server is launched, and remain loaded until the + server is shut down. This directive may be repeated for every + ISAPI .dll file desired. The full path name of each file should + be specified. If the path name is not absolute, it will be treated + relative to <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ISAPIFakeAsync" id="ISAPIFakeAsync">ISAPIFakeAsync</a> <a name="isapifakeasync" id="isapifakeasync">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fake asynchronous support for ISAPI callbacks</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ISAPIFakeAsync on|off</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ISAPIFakeAsync off</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr> +</table> + <p>While set to on, asynchronous support for ISAPI callbacks is + simulated.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ISAPILogNotSupported" id="ISAPILogNotSupported">ISAPILogNotSupported</a> <a name="isapilognotsupported" id="isapilognotsupported">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Log unsupported feature requests from ISAPI +extensions</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ISAPILogNotSupported on|off</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ISAPILogNotSupported off</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr> +</table> + <p>Logs all requests for unsupported features from ISAPI + extensions in the server error log. This may help administrators + to track down problems. Once set to on and all desired ISAPI modules + are functioning, it should be set back to off.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ISAPIReadAheadBuffer" id="ISAPIReadAheadBuffer">ISAPIReadAheadBuffer</a> <a name="isapireadaheadbuffer" id="isapireadaheadbuffer">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Size of the Read Ahead Buffer sent to ISAPI +extensions</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ISAPIReadAheadBuffer <var>size</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ISAPIReadAheadBuffer 49152</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr> +</table> + <p>Defines the maximum size of the Read Ahead Buffer sent to + ISAPI extensions when they are initially invoked. All remaining + data must be retrieved using the <code>ReadClient</code> callback; some + ISAPI extensions may not support the <code>ReadClient</code> function. + Refer questions to the ISAPI extension's author.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="usage" id="usage">Usage</a></h2> @@ -231,109 +334,6 @@ <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"> en </a> | diff --git a/docs/manual/mod/mod_isapi.html.ko.euc-kr b/docs/manual/mod/mod_isapi.html.ko.euc-kr index e1c2b754ef..23021a54a4 100644 --- a/docs/manual/mod/mod_isapi.html.ko.euc-kr +++ b/docs/manual/mod/mod_isapi.html.ko.euc-kr @@ -62,6 +62,106 @@ <li><img alt="" src="../images/down.gif" /> <a href="#journal"> </a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ISAPIAppendLogToErrors" id="ISAPIAppendLogToErrors">ISAPIAppendLogToErrors</a> <a name="isapiappendlogtoerrors" id="isapiappendlogtoerrors">þ</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">:</a></th><td>ISAPI exntension <code>HSE_APPEND_LOG_PARAMETER</code> +û α Ѵ</td></tr> +<tr><th><a href="directive-dict.html#Syntax">:</a></th><td><code>ISAPIAppendLogToErrors on|off</code></td></tr> +<tr><th><a href="directive-dict.html#Default">⺻:</a></th><td><code>ISAPIAppendLogToErrors off</code></td></tr> +<tr><th><a href="directive-dict.html#Context">:</a></th><td>ּ, ȣƮ, directory, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Override">Override ɼ:</a></th><td>FileInfo</td></tr> +<tr><th><a href="directive-dict.html#Status">:</a></th><td>Base</td></tr> +<tr><th><a href="directive-dict.html#Module">:</a></th><td>mod_isapi</td></tr> +</table> + <p>ISAPI exntension <code>HSE_APPEND_LOG_PARAMETER</code> + û α Ѵ.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ISAPIAppendLogToQuery" id="ISAPIAppendLogToQuery">ISAPIAppendLogToQuery</a> <a name="isapiappendlogtoquery" id="isapiappendlogtoquery">þ</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">:</a></th><td>ISAPI exntension <code>HSE_APPEND_LOG_PARAMETER</code> +û ǹڿ Ѵ</td></tr> +<tr><th><a href="directive-dict.html#Syntax">:</a></th><td><code>ISAPIAppendLogToQuery on|off</code></td></tr> +<tr><th><a href="directive-dict.html#Default">⺻:</a></th><td><code>ISAPIAppendLogToQuery on</code></td></tr> +<tr><th><a href="directive-dict.html#Context">:</a></th><td>ּ, ȣƮ, directory, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Override">Override ɼ:</a></th><td>FileInfo</td></tr> +<tr><th><a href="directive-dict.html#Status">:</a></th><td>Base</td></tr> +<tr><th><a href="directive-dict.html#Module">:</a></th><td>mod_isapi</td></tr> +</table> + <p>ISAPI exntension <code>HSE_APPEND_LOG_PARAMETER</code> + û ǹڿ Ѵ (<code class="directive"><a href="../mod/mod_log_config.html#customlog">CustomLog</a></code> <code>%q</code> + δ).</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ISAPICacheFile" id="ISAPICacheFile">ISAPICacheFile</a> <a name="isapicachefile" id="isapicachefile">þ</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">:</a></th><td> Ҷ о ISAPI .dll ϵ</td></tr> +<tr><th><a href="directive-dict.html#Syntax">:</a></th><td><code>ISAPICacheFile <var>file-path</var> [<var>file-path</var>] +...</code></td></tr> +<tr><th><a href="directive-dict.html#Context">:</a></th><td>ּ, ȣƮ</td></tr> +<tr><th><a href="directive-dict.html#Status">:</a></th><td>Base</td></tr> +<tr><th><a href="directive-dict.html#Module">:</a></th><td>mod_isapi</td></tr> +</table> + <p>ġ Ҷ о鿩 Ҷ + ϸ Ͽ Ѵ. + þ ISAPI .dll Ϻ ִ. + ü θ ´. ΰ ƴϸ <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code> η Ƶδ.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ISAPIFakeAsync" id="ISAPIFakeAsync">ISAPIFakeAsync</a> <a name="isapifakeasync" id="isapifakeasync">þ</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">:</a></th><td> ISAPI ݹ ϴ ôѴ</td></tr> +<tr><th><a href="directive-dict.html#Syntax">:</a></th><td><code>ISAPIFakeAsync on|off</code></td></tr> +<tr><th><a href="directive-dict.html#Default">⺻:</a></th><td><code>ISAPIFakeAsync off</code></td></tr> +<tr><th><a href="directive-dict.html#Context">:</a></th><td>ּ, ȣƮ, directory, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Override">Override ɼ:</a></th><td>FileInfo</td></tr> +<tr><th><a href="directive-dict.html#Status">:</a></th><td>Base</td></tr> +<tr><th><a href="directive-dict.html#Module">:</a></th><td>mod_isapi</td></tr> +</table> + <p>on ϸ ISAPI ݹ 䳻.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ISAPILogNotSupported" id="ISAPILogNotSupported">ISAPILogNotSupported</a> <a name="isapilognotsupported" id="isapilognotsupported">þ</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">:</a></th><td>ISAPI extension ʴ ûϸ +α Ѵ</td></tr> +<tr><th><a href="directive-dict.html#Syntax">:</a></th><td><code>ISAPILogNotSupported on|off</code></td></tr> +<tr><th><a href="directive-dict.html#Default">⺻:</a></th><td><code>ISAPILogNotSupported off</code></td></tr> +<tr><th><a href="directive-dict.html#Context">:</a></th><td>ּ, ȣƮ, directory, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Override">Override ɼ:</a></th><td>FileInfo</td></tr> +<tr><th><a href="directive-dict.html#Status">:</a></th><td>Base</td></tr> +<tr><th><a href="directive-dict.html#Module">:</a></th><td>mod_isapi</td></tr> +</table> + <p>ISAPI extension ʴ ûϸ + α Ѵ. ߿ ڰ ϴµ + ȴ. ϴ ISAPI ϸ + ٽ off ǵ Ѵ.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ISAPIReadAheadBuffer" id="ISAPIReadAheadBuffer">ISAPIReadAheadBuffer</a> <a name="isapireadaheadbuffer" id="isapireadaheadbuffer">þ</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">:</a></th><td>ISAPI extension ̸б(read ahead buffer) +ũ</td></tr> +<tr><th><a href="directive-dict.html#Syntax">:</a></th><td><code>ISAPIReadAheadBuffer <var>size</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">⺻:</a></th><td><code>ISAPIReadAheadBuffer 49152</code></td></tr> +<tr><th><a href="directive-dict.html#Context">:</a></th><td>ּ, ȣƮ, directory, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Override">Override ɼ:</a></th><td>FileInfo</td></tr> +<tr><th><a href="directive-dict.html#Status">:</a></th><td>Base</td></tr> +<tr><th><a href="directive-dict.html#Module">:</a></th><td>mod_isapi</td></tr> +</table> + <p>ISAPI extension ó ȣҶ ̸б ִ ũ⸦ + Ѵ. ( ũ⺸ ū) ڷ <code>ReadClient</code> + ݹ Ͽ о Ѵ. ISAPI extension + <code>ReadClient</code> ʴ´. + ISAPI extension ڿ ϶.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="usage" id="usage"></a></h2> @@ -212,106 +312,6 @@ .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"> en </a> | diff --git a/docs/manual/mod/mod_journald.html.en b/docs/manual/mod/mod_journald.html.en index 7cbc3de5c7..c4ca6ef809 100644 --- a/docs/manual/mod/mod_journald.html.en +++ b/docs/manual/mod/mod_journald.html.en @@ -45,6 +45,28 @@ <li><img alt="" src="../images/down.gif" /> <a href="#examples">Examples</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="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> @@ -93,28 +115,6 @@ </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"> <p><span>Available Languages: </span><a href="../en/mod/mod_journald.html" title="English"> en </a></p> diff --git a/docs/manual/mod/mod_lbmethod_heartbeat.html.en b/docs/manual/mod/mod_lbmethod_heartbeat.html.en index dd7cd819e2..7a2e31d12f 100644 --- a/docs/manual/mod/mod_lbmethod_heartbeat.html.en +++ b/docs/manual/mod/mod_lbmethod_heartbeat.html.en @@ -52,7 +52,6 @@ assumption that they are not fully initialized.</p> <li><code class="module"><a href="../mod/mod_heartbeat.html">mod_heartbeat</a></code></li> <li><code class="module"><a href="../mod/mod_heartmonitor.html">mod_heartmonitor</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="HeartbeatStorage" id="HeartbeatStorage">HeartbeatStorage</a> <a name="heartbeatstorage" id="heartbeatstorage">Directive</a></h2> <table class="directive"> @@ -68,6 +67,7 @@ assumption that they are not fully initialized.</p> <code class="module"><a href="../mod/mod_slotmem_shm.html">mod_slotmem_shm</a></code> is not loaded.</p> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_lbmethod_heartbeat.html" title="English"> en </a></p> diff --git a/docs/manual/mod/mod_ldap.html.en b/docs/manual/mod/mod_ldap.html.en index 75dfc34d35..cb3afeb420 100644 --- a/docs/manual/mod/mod_ldap.html.en +++ b/docs/manual/mod/mod_ldap.html.en @@ -85,345 +85,6 @@ by other LDAP modules</td></tr> <li><img alt="" src="../images/down.gif" /> <a href="#settingcerts">SSL/TLS Certificates</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="exampleconfig" id="exampleconfig">Example Configuration</a></h2> - <p>The following is an example configuration that uses - <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> to increase the performance of HTTP Basic - authentication provided by <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>.</p> - - <pre class="prettyprint lang-config"># Enable the LDAP connection pool and shared -# memory cache. Enable the LDAP cache status -# handler. Requires that mod_ldap and mod_authnz_ldap -# be loaded. Change the "yourdomain.example.com" to -# match your domain. - -LDAPSharedCacheSize 500000 -LDAPCacheEntries 1024 -LDAPCacheTTL 600 -LDAPOpCacheEntries 1024 -LDAPOpCacheTTL 600 - -<Location /ldap-status> - 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 -</Location></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">LDAP Connection Pool</a></h2> - - <p>LDAP connections are pooled from request to request. This - allows the LDAP server to remain connected and bound ready for - the next request, without the need to unbind/connect/rebind. - The performance advantages are similar to the effect of HTTP - keepalives.</p> - - <p>On a busy server it is possible that many requests will try - and access the same LDAP server connection simultaneously. - Where an LDAP connection is in use, Apache will create a new - connection alongside the original one. This ensures that the - connection pool does not become a bottleneck.</p> - - <p>There is no need to manually enable connection pooling in - the Apache configuration. Any module using this module for - access to LDAP services will share the connection pool.</p> - - <p>LDAP connections can keep track of the ldap client - credentials used when binding to an LDAP server. These - credentials can be provided to LDAP servers that do not - allow anonymous binds during referral chasing. To control - this feature, see the - <code class="directive"><a href="#ldapreferrals">LDAPReferrals</a></code> and - <code class="directive"><a href="#ldapreferralhoplimit">LDAPReferralHopLimit</a></code> - directives. By default, this feature is enabled.</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">LDAP Cache</a></h2> - - <p>For improved performance, <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> uses an aggressive - caching strategy to minimize the number of times that the LDAP - server must be contacted. Caching can easily double or triple - the throughput of Apache when it is serving pages protected - with mod_authnz_ldap. In addition, the load on the LDAP server - will be significantly decreased.</p> - - <p><code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> supports two types of LDAP caching during - the search/bind phase with a <em>search/bind cache</em> and - during the compare phase with two <em>operation - caches</em>. Each LDAP URL that is used by the server has - its own set of these three caches.</p> - - <h3><a name="search-bind" id="search-bind">The Search/Bind Cache</a></h3> - <p>The process of doing a search and then a bind is the - most time-consuming aspect of LDAP operation, especially if - the directory is large. The search/bind cache is used to - cache all searches that resulted in successful binds. - Negative results (<em>i.e.</em>, unsuccessful searches, or searches - that did not result in a successful bind) are not cached. - The rationale behind this decision is that connections with - invalid credentials are only a tiny percentage of the total - number of connections, so by not caching invalid - credentials, the size of the cache is reduced.</p> - - <p><code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> stores the username, the DN - retrieved, the password used to bind, and the time of the bind - in the cache. Whenever a new connection is initiated with the - same username, <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> compares the password - of the new connection with the password in the cache. If the - passwords match, and if the cached entry is not too old, - <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> bypasses the search/bind phase.</p> - - <p>The search and bind cache is controlled with the <code class="directive"><a href="#ldapcacheentries">LDAPCacheEntries</a></code> and <code class="directive"><a href="#ldapcachettl">LDAPCacheTTL</a></code> directives.</p> - - - <h3><a name="opcaches" id="opcaches">Operation Caches</a></h3> - <p>During attribute and distinguished name comparison - functions, <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> uses two operation caches - to cache the compare operations. The first compare cache is - used to cache the results of compares done to test for LDAP - group membership. The second compare cache is used to cache - the results of comparisons done between distinguished - names.</p> - - <p>Note that, when group membership is being checked, any sub-group - comparison results are cached to speed future sub-group comparisons.</p> - - <p>The behavior of both of these caches is controlled with - the <code class="directive"><a href="#ldapopcacheentries">LDAPOpCacheEntries</a></code> - and <code class="directive"><a href="#ldapopcachettl">LDAPOpCacheTTL</a></code> - directives.</p> - - - <h3><a name="monitoring" id="monitoring">Monitoring the Cache</a></h3> - <p><code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> has a content handler that allows - administrators to monitor the cache performance. The name of - the content handler is <code>ldap-status</code>, so the - 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"><Location /server/cache-info> - SetHandler ldap-status -</Location></pre> - - - <p>By fetching the URL <code>http://servername/cache-info</code>, - the administrator can get a status report of every cache that is used - by <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> cache. Note that if Apache does not - support shared memory, then each <code class="program"><a href="../programs/httpd.html">httpd</a></code> instance has its - own cache, so reloading the URL will result in different - information each time, depending on which <code class="program"><a href="../programs/httpd.html">httpd</a></code> - instance processes the 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="usingssltls" id="usingssltls">Using SSL/TLS</a></h2> - - <p>The ability to create an SSL and TLS connections to an LDAP server - is defined by the directives - <code class="directive"><a href="#ldaptrustedglobalcert">LDAPTrustedGlobalCert</a></code>, - <code class="directive"><a href="#ldaptrustedclientcert">LDAPTrustedClientCert</a></code> - and <code class="directive"><a href="#ldaptrustedmode">LDAPTrustedMode</a></code>. - These directives specify the CA and optional client certificates to be used, - as well as the type of encryption to be used on the connection (none, SSL or - TLS/STARTTLS).</p> - - <pre class="prettyprint lang-config"># Establish an SSL LDAP connection on port 636. 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 - -<Location /ldap-status> - 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 -</Location></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 - -<Location /ldap-status> - 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 -</Location></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 -<Location /ldap-status> - SetHandler ldap-status - - Require host yourdomain.example.com - - Satisfy any - AuthType Basic - AuthName "LDAP Protected" - AuthBasicProvider ldap - LDAPTrustedClientCert CERT_NICKNAME <nickname> [password] - AuthLDAPURL ldaps://127.0.0.1/dc=example,dc=com?uid?one - Require valid-user -</Location></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 -<Location /ldap-status> - 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 -</Location></pre> - - - - - <h3><a name="settingcerts-solaris" id="settingcerts-solaris">Solaris SDK</a></h3> - - <p>SSL/TLS for the native Solaris LDAP libraries is not yet - supported. If required, install and use the OpenLDAP libraries - instead.</p> - - - - <h3><a name="settingcerts-microsoft" id="settingcerts-microsoft">Microsoft SDK</a></h3> - - <p>SSL/TLS certificate configuration for the native Microsoft - LDAP libraries is done inside the system registry, and no - configuration directives are required.</p> - - <p>Both SSL and TLS are supported by using the ldaps:// URL - format, or by using the LDAPTrustedMode directive accordingly.</p> - - <p>Note: The status of support for client certificates is not yet known - for this toolkit.</p> - - - -</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> @@ -841,6 +502,345 @@ Certificate Authority or global client certificates</td></tr> 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 + <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> to increase the performance of HTTP Basic + authentication provided by <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>.</p> + + <pre class="prettyprint lang-config"># Enable the LDAP connection pool and shared +# memory cache. Enable the LDAP cache status +# handler. Requires that mod_ldap and mod_authnz_ldap +# be loaded. Change the "yourdomain.example.com" to +# match your domain. + +LDAPSharedCacheSize 500000 +LDAPCacheEntries 1024 +LDAPCacheTTL 600 +LDAPOpCacheEntries 1024 +LDAPOpCacheTTL 600 + +<Location /ldap-status> + 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 +</Location></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">LDAP Connection Pool</a></h2> + + <p>LDAP connections are pooled from request to request. This + allows the LDAP server to remain connected and bound ready for + the next request, without the need to unbind/connect/rebind. + The performance advantages are similar to the effect of HTTP + keepalives.</p> + + <p>On a busy server it is possible that many requests will try + and access the same LDAP server connection simultaneously. + Where an LDAP connection is in use, Apache will create a new + connection alongside the original one. This ensures that the + connection pool does not become a bottleneck.</p> + + <p>There is no need to manually enable connection pooling in + the Apache configuration. Any module using this module for + access to LDAP services will share the connection pool.</p> + + <p>LDAP connections can keep track of the ldap client + credentials used when binding to an LDAP server. These + credentials can be provided to LDAP servers that do not + allow anonymous binds during referral chasing. To control + this feature, see the + <code class="directive"><a href="#ldapreferrals">LDAPReferrals</a></code> and + <code class="directive"><a href="#ldapreferralhoplimit">LDAPReferralHopLimit</a></code> + directives. By default, this feature is enabled.</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">LDAP Cache</a></h2> + + <p>For improved performance, <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> uses an aggressive + caching strategy to minimize the number of times that the LDAP + server must be contacted. Caching can easily double or triple + the throughput of Apache when it is serving pages protected + with mod_authnz_ldap. In addition, the load on the LDAP server + will be significantly decreased.</p> + + <p><code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> supports two types of LDAP caching during + the search/bind phase with a <em>search/bind cache</em> and + during the compare phase with two <em>operation + caches</em>. Each LDAP URL that is used by the server has + its own set of these three caches.</p> + + <h3><a name="search-bind" id="search-bind">The Search/Bind Cache</a></h3> + <p>The process of doing a search and then a bind is the + most time-consuming aspect of LDAP operation, especially if + the directory is large. The search/bind cache is used to + cache all searches that resulted in successful binds. + Negative results (<em>i.e.</em>, unsuccessful searches, or searches + that did not result in a successful bind) are not cached. + The rationale behind this decision is that connections with + invalid credentials are only a tiny percentage of the total + number of connections, so by not caching invalid + credentials, the size of the cache is reduced.</p> + + <p><code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> stores the username, the DN + retrieved, the password used to bind, and the time of the bind + in the cache. Whenever a new connection is initiated with the + same username, <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> compares the password + of the new connection with the password in the cache. If the + passwords match, and if the cached entry is not too old, + <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> bypasses the search/bind phase.</p> + + <p>The search and bind cache is controlled with the <code class="directive"><a href="#ldapcacheentries">LDAPCacheEntries</a></code> and <code class="directive"><a href="#ldapcachettl">LDAPCacheTTL</a></code> directives.</p> + + + <h3><a name="opcaches" id="opcaches">Operation Caches</a></h3> + <p>During attribute and distinguished name comparison + functions, <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> uses two operation caches + to cache the compare operations. The first compare cache is + used to cache the results of compares done to test for LDAP + group membership. The second compare cache is used to cache + the results of comparisons done between distinguished + names.</p> + + <p>Note that, when group membership is being checked, any sub-group + comparison results are cached to speed future sub-group comparisons.</p> + + <p>The behavior of both of these caches is controlled with + the <code class="directive"><a href="#ldapopcacheentries">LDAPOpCacheEntries</a></code> + and <code class="directive"><a href="#ldapopcachettl">LDAPOpCacheTTL</a></code> + directives.</p> + + + <h3><a name="monitoring" id="monitoring">Monitoring the Cache</a></h3> + <p><code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> has a content handler that allows + administrators to monitor the cache performance. The name of + the content handler is <code>ldap-status</code>, so the + 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"><Location /server/cache-info> + SetHandler ldap-status +</Location></pre> + + + <p>By fetching the URL <code>http://servername/cache-info</code>, + the administrator can get a status report of every cache that is used + by <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> cache. Note that if Apache does not + support shared memory, then each <code class="program"><a href="../programs/httpd.html">httpd</a></code> instance has its + own cache, so reloading the URL will result in different + information each time, depending on which <code class="program"><a href="../programs/httpd.html">httpd</a></code> + instance processes the 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="usingssltls" id="usingssltls">Using SSL/TLS</a></h2> + + <p>The ability to create an SSL and TLS connections to an LDAP server + is defined by the directives + <code class="directive"><a href="#ldaptrustedglobalcert">LDAPTrustedGlobalCert</a></code>, + <code class="directive"><a href="#ldaptrustedclientcert">LDAPTrustedClientCert</a></code> + and <code class="directive"><a href="#ldaptrustedmode">LDAPTrustedMode</a></code>. + These directives specify the CA and optional client certificates to be used, + as well as the type of encryption to be used on the connection (none, SSL or + TLS/STARTTLS).</p> + + <pre class="prettyprint lang-config"># Establish an SSL LDAP connection on port 636. 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 + +<Location /ldap-status> + 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 +</Location></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 + +<Location /ldap-status> + 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 +</Location></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 +<Location /ldap-status> + SetHandler ldap-status + + Require host yourdomain.example.com + + Satisfy any + AuthType Basic + AuthName "LDAP Protected" + AuthBasicProvider ldap + LDAPTrustedClientCert CERT_NICKNAME <nickname> [password] + AuthLDAPURL ldaps://127.0.0.1/dc=example,dc=com?uid?one + Require valid-user +</Location></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 +<Location /ldap-status> + 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 +</Location></pre> + + + + + <h3><a name="settingcerts-solaris" id="settingcerts-solaris">Solaris SDK</a></h3> + + <p>SSL/TLS for the native Solaris LDAP libraries is not yet + supported. If required, install and use the OpenLDAP libraries + instead.</p> + + + + <h3><a name="settingcerts-microsoft" id="settingcerts-microsoft">Microsoft SDK</a></h3> + + <p>SSL/TLS certificate configuration for the native Microsoft + LDAP libraries is done inside the system registry, and no + configuration directives are required.</p> + + <p>Both SSL and TLS are supported by using the ldaps:// URL + format, or by using the LDAPTrustedMode directive accordingly.</p> + + <p>Note: The status of support for client certificates is not yet known + for this toolkit.</p> + + + +</div> </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_ldap.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_ldap.html.fr b/docs/manual/mod/mod_ldap.html.fr index ed2766b514..f3e8b38230 100644 --- a/docs/manual/mod/mod_ldap.html.fr +++ b/docs/manual/mod/mod_ldap.html.fr @@ -84,370 +84,6 @@ cache du rsultat destination des autres modules LDAP</td></tr> <li><img alt="" src="../images/down.gif" /> <a href="#settingcerts">Certificats SSL/TLS</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="exampleconfig" id="exampleconfig">Exemple de configuration</a></h2> - <p>Ce qui suit est un exemple de configuration qui utilise - <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> pour amliorer les performances de - l'authentification HTTP de base fournie par - <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>.</p> - - <pre class="prettyprint lang-config"># Active la conservation des connexions LDAP et le cache partag en -# mmoire. Active le gestionnaire de statut du cache LDAP. -# Ncessite le chargement de mod_ldap et de mod_authnz_ldap. -# Remplacez "votre-domaine.example.com" par le nom de votre -# domaine. - -LDAPSharedCacheSize 500000 -LDAPCacheEntries 1024 -LDAPCacheTTL 600 -LDAPOpCacheEntries 1024 -LDAPOpCacheTTL 600 - -<Location /ldap-status> - 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 -</Location></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 conserves de requte en requte. Ceci - permet de rester connect et identifi au serveur LDAP, ce dernier - tant ainsi prt pour la prochaine requte, sans avoir se - dconnecter, reconnecter et ridentifier. Le gain en performances - est similaire celui des connexions persistantes (keepalives) - HTTP.</p> - - <p>Sur un serveur trs sollicit, il est possible que de nombreuses - requtes tentent d'accder simultanment la mme connexion au - serveur LDAP. Lorsqu'une connexion LDAP est utilise, Apache en cre - une deuxime en parallle la premire, ce qui permet d'viter que - le systme de conservation des connexions ne devienne un goulot - d'tranglement.</p> - - <p>Il n'est pas ncessaire d'activer explicitement la conservation - des connexions dans la configuration d'Apache. Tout module utilisant - le module ldap pour accder aux services LDAP partagera le jeu de - connexions.</p> - - <p>Les connexions LDAP peuvent garder la trace des donnes - d'identification du client ldap utilises pour l'identification - auprs du serveur LDAP. Ces donnes 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 - contrler 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 active par dfaut.</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 amliorer les performances, <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> met en - oeuvre une stratgie 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 mme tripler le dbit d'Apache - lorsqu'il sert des pages protges par mod_authnz_ldap. De plus, le - serveur LDAP verra lui-mme sa charge sensiblement diminue.</p> - - <p><code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> supporte deux types de mise en cache - LDAP : un <em>cache recherche/identification</em> durant la phase - de recherche/identification et deux <em>caches d'oprations</em> - durant la phase de comparaison. Chaque URL LDAP utilise par le - serveur a son propre jeu d'instances dans ces trois caches.</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 - oprations 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 rsultats ngatifs - (c'est dire les recherches sans succs, ou les recherches qui - n'ont pas abouti une identification positive) ne sont pas mis en - cache. La raison de cette dcision rside dans le fait que les - connexions avec des donnes d'identification invalides ne - reprsentent qu'un faible pourcentage du nombre total de - connexions, et ainsi, le fait de ne pas mettre en cache les - donnes d'identification invalides rduira d'autant la taille du - cache.</p> - - <p><code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> met en cache le nom d'utilisateur, le - DN extrait, le mot de passe utilis pour l'identification, ainsi - que l'heure de l'identification. Chaque fois qu'une nouvelle - connexion est initialise avec le mme 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'entre 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>Le cache de recherche/identification est contrl 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'oprations</a></h3> - <p>Au cours des oprations 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'oprations pour mettre en cache les oprations de comparaison. - Le premier cache de comparaison sert mettre en cache les - rsultats de comparaisons effectues pour vrifier l'appartenance - un groupe LDAP. Le second cache de comparaison sert mettre en - cache les rsultats de comparaisons entre DNs.</p> - - <p>Notez que, lorsque l'appartenance un groupe est vrifie, - toute comparaison de sous-groupes est mise en cache afin - d'acclrer les comparaisons de sous-groupes ultrieures.</p> - - <p>Le comportement de ces deux caches est contrl par les - directives <code class="directive"><a href="#ldapopcacheentries">LDAPOpCacheEntries</a></code> et <code class="directive"><a href="#ldapopcachettl">LDAPOpCacheTTL</a></code>.</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> possde 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 accder aux informations du cache de - <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> :</p> - - <pre class="prettyprint lang-config"><Location /server/cache-info> - SetHandler ldap-status -</Location></pre> - - - <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 - mmoire partage, chaque instance de <code class="program"><a href="../programs/httpd.html">httpd</a></code> - possdera son propre cache, et chaque fois que l'URL sera - recharge, un rsultat diffrent pourra tre affich, en fonction - de l'instance de <code class="program"><a href="../programs/httpd.html">httpd</a></code> qui traitera la - requte.</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 possibilit de crer des connexions SSL et TLS avec un serveur - LDAP est dfinie 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 spcifier - 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> - - <pre class="prettyprint lang-config"># Etablissement d'une connexion SSL LDAP sur le port 636. -# Ncessite le chargement de mod_ldap et mod_authnz_ldap. -# Remplacez "votre-domaine.example.com" par le nom de votre -# domaine. - -LDAPTrustedGlobalCert CA_DER /certs/certfile.der - -<Location /ldap-status> - 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 -</Location></pre> - - - <pre class="prettyprint lang-config"># Etablissement d'une connexion TLS LDAP sur le port 389. -# Ncessite le chargement de mod_ldap et mod_authnz_ldap. -# Remplacez "votre-domaine.example.com" par le nom de votre -# domaine. - -LDAPTrustedGlobalCert CA_DER /certs/certfile.der - -<Location /ldap-status> - 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 -</Location></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 diffrents SDKs LDAP disposent de nombreuses mthodes pour - dfinir et grer les certificats des clients et des autorits de - certification (CA).</p> - - <p>Si vous avez l'intention d'utiliser SSL ou TLS, lisez cette - section ATTENTIVEMENT de faon bien comprendre les diffrences de - configurations entre les diffrents SDKs LDAP supports.</p> - - <h3><a name="settingcerts-netscape" id="settingcerts-netscape">SDK Netscape/Mozilla/iPlanet</a></h3> - <p>Les certificat de CA sont enregistrs 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 spcifie dans ce - fichier. Si des certificats clients sont requis, un fichier - key3.db ainsi qu'un mot de passe optionnels peuvent tre - spcifis. On peut aussi spcifier le fichier secmod si - ncessaire. Ces fichiers sont du mme 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 spcifis pour chaque connexion - en utilisant la directive LDAPTrustedClientCert et en se - rfrant au certificat "nickname". On peut ventuellement - spcifier un mot de passe pour dverrouiller la cl prive du - certificat.</p> - - <p>Le SDK supporte seulement SSL. Toute tentative d'utilisation - de STARTTLS engendrera une erreur lors des tentatives de - contacter le serveur LDAP pendant l'excution.</p> - - <pre class="prettyprint lang-config"># Spcifie un fichier de certificats de CA Netscape -LDAPTrustedGlobalCert CA_CERT7_DB /certs/cert7.db -# Spcifie un fichier key3db optionnel pour le support des -# certificats clients -LDAPTrustedGlobalCert CERT_KEY3_DB /certs/key3.db -# Spcifie le fichier secmod si ncessaire -LDAPTrustedGlobalCert CA_SECMOD /certs/secmod -<Location /ldap-status> - SetHandler ldap-status - - Require host yourdomain.example.com - - Satisfy any - AuthType Basic - AuthName "LDAP Protected" - AuthBasicProvider ldap - LDAPTrustedClientCert CERT_NICKNAME <nickname> [password] - AuthLDAPURL ldaps://127.0.0.1/dc=example,dc=com?uid?one - Require valid-user -</Location></pre> - - - - - <h3><a name="settingcerts-novell" id="settingcerts-novell">SDK Novell</a></h3> - - <p>Un ou plusieurs certificats de CA doivent tre spcifis pour - que le SDK Novell fonctionne correctement. Ces certificats - peuvent tre spcifis sous forme de fichiers au format binaire - DER ou cods en Base64 (PEM).</p> - - <p>Note: Les certificats clients sont spcifis globalement - plutt qu' chaque connexion, et doivent tre spcifis l'aide - de la directive LDAPTrustedGlobalCert comme ci-dessous. Dfinir - des certificats clients via la directive LDAPTrustedClientCert - engendrera une erreur qui sera journalise, au moment de la - tentative de connexion avec le serveur LDAP.</p> - - <p>Le SDK supporte SSL et STARTTLS, le choix tant dfini par le - paramtre de la directive LDAPTrustedMode. Si une URL de type - ldaps:// est spcifie, le mode SSL est forc, et l'emporte sur - cette directive.</p> - - <pre class="prettyprint lang-config"># Spcifie deux fichiers contenant des certificats de CA -LDAPTrustedGlobalCert CA_DER /certs/cacert1.der -LDAPTrustedGlobalCert CA_BASE64 /certs/cacert2.pem -# Spcifie 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 spcifis pour - que le SDK OpenLDAP fonctionne correctement. Ces certificats - peuvent tre spcifis sous forme de fichiers au format binaire - DER ou cods en Base64 (PEM).</p> - - <p>Les certificats clients sont spcifis pour chaque connexion - l'aide de la directive LDAPTrustedClientCert.</p> - - <p>La documentation du SDK prtend que SSL et STARTTLS sont - supports ; cependant, STARTTLS semble ne pas fonctionner avec - toutes les versions du SDK. Le mode SSL/TLS peut tre dfini en - utilisant le paramtre de la directive LDAPTrustedMode. Si une - URL de type - ldaps:// est spcifie, 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"># Spcifie deux fichiers contenant des certificats de CA -LDAPTrustedGlobalCert CA_DER /certs/cacert1.der -LDAPTrustedGlobalCert CA_BASE64 /certs/cacert2.pem -<Location /ldap-status> - 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 -</Location></pre> - - - - - <h3><a name="settingcerts-solaris" id="settingcerts-solaris">SDK Solaris</a></h3> - - <p>SSL/TLS pour les bibliothques LDAP propres Solaris n'est - pas encore support. Si ncessaire, installez et utilisez plutt - les bibliothques OpenLDAP.</p> - - - - <h3><a name="settingcerts-microsoft" id="settingcerts-microsoft">SDK Microsoft</a></h3> - - <p>La configuration des certificats SSL/TLS pour les - bibliothques LDAP propres Microsoft s'effectue l'intrieur - du registre systme, et aucune directive de configuration n'est - requise.</p> - - <p>SSL et TLS sont tous deux supports en utilisant des URLs de - type ldaps://, ou en dfinissant la directive LDAPTrustedMode - cet effet.</p> - - <p>Note: L'tat du support des certificats clients n'est pas - encore connu pour ce SDK.</p> - - - -</div> -<div 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'entres dans le cache LDAP @@ -930,6 +566,370 @@ serveur</td></tr> d'une connexion SSL avec un 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="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 amliorer les performances de + l'authentification HTTP de base fournie par + <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>.</p> + + <pre class="prettyprint lang-config"># Active la conservation des connexions LDAP et le cache partag en +# mmoire. Active le gestionnaire de statut du cache LDAP. +# Ncessite le chargement de mod_ldap et de mod_authnz_ldap. +# Remplacez "votre-domaine.example.com" par le nom de votre +# domaine. + +LDAPSharedCacheSize 500000 +LDAPCacheEntries 1024 +LDAPCacheTTL 600 +LDAPOpCacheEntries 1024 +LDAPOpCacheTTL 600 + +<Location /ldap-status> + 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 +</Location></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 conserves de requte en requte. Ceci + permet de rester connect et identifi au serveur LDAP, ce dernier + tant ainsi prt pour la prochaine requte, sans avoir se + dconnecter, reconnecter et ridentifier. Le gain en performances + est similaire celui des connexions persistantes (keepalives) + HTTP.</p> + + <p>Sur un serveur trs sollicit, il est possible que de nombreuses + requtes tentent d'accder simultanment la mme connexion au + serveur LDAP. Lorsqu'une connexion LDAP est utilise, Apache en cre + une deuxime en parallle la premire, ce qui permet d'viter que + le systme de conservation des connexions ne devienne un goulot + d'tranglement.</p> + + <p>Il n'est pas ncessaire d'activer explicitement la conservation + des connexions dans la configuration d'Apache. Tout module utilisant + le module ldap pour accder aux services LDAP partagera le jeu de + connexions.</p> + + <p>Les connexions LDAP peuvent garder la trace des donnes + d'identification du client ldap utilises pour l'identification + auprs du serveur LDAP. Ces donnes 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 + contrler 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 active par dfaut.</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 amliorer les performances, <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> met en + oeuvre une stratgie 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 mme tripler le dbit d'Apache + lorsqu'il sert des pages protges par mod_authnz_ldap. De plus, le + serveur LDAP verra lui-mme sa charge sensiblement diminue.</p> + + <p><code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> supporte deux types de mise en cache + LDAP : un <em>cache recherche/identification</em> durant la phase + de recherche/identification et deux <em>caches d'oprations</em> + durant la phase de comparaison. Chaque URL LDAP utilise par le + serveur a son propre jeu d'instances dans ces trois caches.</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 + oprations 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 rsultats ngatifs + (c'est dire les recherches sans succs, ou les recherches qui + n'ont pas abouti une identification positive) ne sont pas mis en + cache. La raison de cette dcision rside dans le fait que les + connexions avec des donnes d'identification invalides ne + reprsentent qu'un faible pourcentage du nombre total de + connexions, et ainsi, le fait de ne pas mettre en cache les + donnes d'identification invalides rduira d'autant la taille du + cache.</p> + + <p><code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> met en cache le nom d'utilisateur, le + DN extrait, le mot de passe utilis pour l'identification, ainsi + que l'heure de l'identification. Chaque fois qu'une nouvelle + connexion est initialise avec le mme 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'entre 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>Le cache de recherche/identification est contrl 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'oprations</a></h3> + <p>Au cours des oprations 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'oprations pour mettre en cache les oprations de comparaison. + Le premier cache de comparaison sert mettre en cache les + rsultats de comparaisons effectues pour vrifier l'appartenance + un groupe LDAP. Le second cache de comparaison sert mettre en + cache les rsultats de comparaisons entre DNs.</p> + + <p>Notez que, lorsque l'appartenance un groupe est vrifie, + toute comparaison de sous-groupes est mise en cache afin + d'acclrer les comparaisons de sous-groupes ultrieures.</p> + + <p>Le comportement de ces deux caches est contrl par les + directives <code class="directive"><a href="#ldapopcacheentries">LDAPOpCacheEntries</a></code> et <code class="directive"><a href="#ldapopcachettl">LDAPOpCacheTTL</a></code>.</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> possde 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 accder aux informations du cache de + <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> :</p> + + <pre class="prettyprint lang-config"><Location /server/cache-info> + SetHandler ldap-status +</Location></pre> + + + <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 + mmoire partage, chaque instance de <code class="program"><a href="../programs/httpd.html">httpd</a></code> + possdera son propre cache, et chaque fois que l'URL sera + recharge, un rsultat diffrent pourra tre affich, en fonction + de l'instance de <code class="program"><a href="../programs/httpd.html">httpd</a></code> qui traitera la + requte.</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 possibilit de crer des connexions SSL et TLS avec un serveur + LDAP est dfinie 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 spcifier + 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> + + <pre class="prettyprint lang-config"># Etablissement d'une connexion SSL LDAP sur le port 636. +# Ncessite le chargement de mod_ldap et mod_authnz_ldap. +# Remplacez "votre-domaine.example.com" par le nom de votre +# domaine. + +LDAPTrustedGlobalCert CA_DER /certs/certfile.der + +<Location /ldap-status> + 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 +</Location></pre> + + + <pre class="prettyprint lang-config"># Etablissement d'une connexion TLS LDAP sur le port 389. +# Ncessite le chargement de mod_ldap et mod_authnz_ldap. +# Remplacez "votre-domaine.example.com" par le nom de votre +# domaine. + +LDAPTrustedGlobalCert CA_DER /certs/certfile.der + +<Location /ldap-status> + 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 +</Location></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 diffrents SDKs LDAP disposent de nombreuses mthodes pour + dfinir et grer les certificats des clients et des autorits de + certification (CA).</p> + + <p>Si vous avez l'intention d'utiliser SSL ou TLS, lisez cette + section ATTENTIVEMENT de faon bien comprendre les diffrences de + configurations entre les diffrents SDKs LDAP supports.</p> + + <h3><a name="settingcerts-netscape" id="settingcerts-netscape">SDK Netscape/Mozilla/iPlanet</a></h3> + <p>Les certificat de CA sont enregistrs 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 spcifie dans ce + fichier. Si des certificats clients sont requis, un fichier + key3.db ainsi qu'un mot de passe optionnels peuvent tre + spcifis. On peut aussi spcifier le fichier secmod si + ncessaire. Ces fichiers sont du mme 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 spcifis pour chaque connexion + en utilisant la directive LDAPTrustedClientCert et en se + rfrant au certificat "nickname". On peut ventuellement + spcifier un mot de passe pour dverrouiller la cl prive du + certificat.</p> + + <p>Le SDK supporte seulement SSL. Toute tentative d'utilisation + de STARTTLS engendrera une erreur lors des tentatives de + contacter le serveur LDAP pendant l'excution.</p> + + <pre class="prettyprint lang-config"># Spcifie un fichier de certificats de CA Netscape +LDAPTrustedGlobalCert CA_CERT7_DB /certs/cert7.db +# Spcifie un fichier key3db optionnel pour le support des +# certificats clients +LDAPTrustedGlobalCert CERT_KEY3_DB /certs/key3.db +# Spcifie le fichier secmod si ncessaire +LDAPTrustedGlobalCert CA_SECMOD /certs/secmod +<Location /ldap-status> + SetHandler ldap-status + + Require host yourdomain.example.com + + Satisfy any + AuthType Basic + AuthName "LDAP Protected" + AuthBasicProvider ldap + LDAPTrustedClientCert CERT_NICKNAME <nickname> [password] + AuthLDAPURL ldaps://127.0.0.1/dc=example,dc=com?uid?one + Require valid-user +</Location></pre> + + + + + <h3><a name="settingcerts-novell" id="settingcerts-novell">SDK Novell</a></h3> + + <p>Un ou plusieurs certificats de CA doivent tre spcifis pour + que le SDK Novell fonctionne correctement. Ces certificats + peuvent tre spcifis sous forme de fichiers au format binaire + DER ou cods en Base64 (PEM).</p> + + <p>Note: Les certificats clients sont spcifis globalement + plutt qu' chaque connexion, et doivent tre spcifis l'aide + de la directive LDAPTrustedGlobalCert comme ci-dessous. Dfinir + des certificats clients via la directive LDAPTrustedClientCert + engendrera une erreur qui sera journalise, au moment de la + tentative de connexion avec le serveur LDAP.</p> + + <p>Le SDK supporte SSL et STARTTLS, le choix tant dfini par le + paramtre de la directive LDAPTrustedMode. Si une URL de type + ldaps:// est spcifie, le mode SSL est forc, et l'emporte sur + cette directive.</p> + + <pre class="prettyprint lang-config"># Spcifie deux fichiers contenant des certificats de CA +LDAPTrustedGlobalCert CA_DER /certs/cacert1.der +LDAPTrustedGlobalCert CA_BASE64 /certs/cacert2.pem +# Spcifie 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 spcifis pour + que le SDK OpenLDAP fonctionne correctement. Ces certificats + peuvent tre spcifis sous forme de fichiers au format binaire + DER ou cods en Base64 (PEM).</p> + + <p>Les certificats clients sont spcifis pour chaque connexion + l'aide de la directive LDAPTrustedClientCert.</p> + + <p>La documentation du SDK prtend que SSL et STARTTLS sont + supports ; cependant, STARTTLS semble ne pas fonctionner avec + toutes les versions du SDK. Le mode SSL/TLS peut tre dfini en + utilisant le paramtre de la directive LDAPTrustedMode. Si une + URL de type + ldaps:// est spcifie, 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"># Spcifie deux fichiers contenant des certificats de CA +LDAPTrustedGlobalCert CA_DER /certs/cacert1.der +LDAPTrustedGlobalCert CA_BASE64 /certs/cacert2.pem +<Location /ldap-status> + 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 +</Location></pre> + + + + + <h3><a name="settingcerts-solaris" id="settingcerts-solaris">SDK Solaris</a></h3> + + <p>SSL/TLS pour les bibliothques LDAP propres Solaris n'est + pas encore support. Si ncessaire, installez et utilisez plutt + les bibliothques OpenLDAP.</p> + + + + <h3><a name="settingcerts-microsoft" id="settingcerts-microsoft">SDK Microsoft</a></h3> + + <p>La configuration des certificats SSL/TLS pour les + bibliothques LDAP propres Microsoft s'effectue l'intrieur + du registre systme, et aucune directive de configuration n'est + requise.</p> + + <p>SSL et TLS sont tous deux supports en utilisant des URLs de + type ldaps://, ou en dfinissant la directive LDAPTrustedMode + cet effet.</p> + + <p>Note: L'tat du support des certificats clients n'est pas + encore connu pour ce SDK.</p> + + + +</div> </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_ldap.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_log_config.html.en b/docs/manual/mod/mod_log_config.html.en index 0d4a3c200e..b9557eea38 100644 --- a/docs/manual/mod/mod_log_config.html.en +++ b/docs/manual/mod/mod_log_config.html.en @@ -65,6 +65,186 @@ <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\" %>s %b" common +CustomLog logs/access_log common + +# CustomLog with explicit format string +CustomLog logs/access_log "%h %l %u %t \"%r\" %>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\" %>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\" %>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\" %>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> @@ -356,186 +536,6 @@ 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\" %>s %b" common -CustomLog logs/access_log common - -# CustomLog with explicit format string -CustomLog logs/access_log "%h %l %u %t \"%r\" %>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\" %>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\" %>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\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" -TransferLog logs/access_log</pre> -</div> - -</div> </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_log_config.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_log_config.html.ja.utf8 b/docs/manual/mod/mod_log_config.html.ja.utf8 index 1073ab2a1f..57c39b7e95 100644 --- a/docs/manual/mod/mod_log_config.html.ja.utf8 +++ b/docs/manual/mod/mod_log_config.html.ja.utf8 @@ -71,6 +71,185 @@ <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\" %>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\" %>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\" %>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\" %>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\" %>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> @@ -278,185 +457,6 @@ 書き込み可能なときにセキュリティの問題が発生する理由の詳細は<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\" %>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\" %>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\" %>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\" %>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\" %>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"> en </a> | diff --git a/docs/manual/mod/mod_log_config.html.ko.euc-kr b/docs/manual/mod/mod_log_config.html.ko.euc-kr index 8a1f3a776f..8cc2912e46 100644 --- a/docs/manual/mod/mod_log_config.html.ko.euc-kr +++ b/docs/manual/mod/mod_log_config.html.ko.euc-kr @@ -65,6 +65,153 @@ <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\" %>s %b" common<br /> + CustomLog logs/access_log common<br /> + <br /> + # ڿ CustomLog<br /> + CustomLog logs/access_log "%h %l %u %t \"%r\" %>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\" %>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\" %>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\" %>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> @@ -241,153 +388,6 @@ <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\" %>s %b" common<br /> - CustomLog logs/access_log common<br /> - <br /> - # ڿ CustomLog<br /> - CustomLog logs/access_log "%h %l %u %t \"%r\" %>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\" %>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\" %>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\" %>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"> en </a> | diff --git a/docs/manual/mod/mod_log_config.html.tr.utf8 b/docs/manual/mod/mod_log_config.html.tr.utf8 index b74ccba6a5..9d58c4e3dc 100644 --- a/docs/manual/mod/mod_log_config.html.tr.utf8 +++ b/docs/manual/mod/mod_log_config.html.tr.utf8 @@ -67,6 +67,181 @@ <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\" %>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\" %>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\" %>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\" %>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\" %>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> @@ -326,181 +501,6 @@ 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\" %>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\" %>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\" %>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\" %>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\" %>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"> en </a> | diff --git a/docs/manual/mod/mod_log_debug.html.en b/docs/manual/mod/mod_log_debug.html.en index 1c0e923740..5d3aa36351 100644 --- a/docs/manual/mod/mod_log_debug.html.en +++ b/docs/manual/mod/mod_log_debug.html.en @@ -41,53 +41,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#examples">Examples</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="examples" id="examples">Examples</a></h2> - - <ol> - <li> - Log message after request to /foo/* is processed: - - <pre class="prettyprint lang-config"><Location /foo/> -LogMessage "/foo/ has been requested" -</Location></pre> - - </li> - - <li> - Log message if request to /foo/* is processed in a sub-request: - <pre class="prettyprint lang-config"><Location /foo/> -LogMessage "subrequest to /foo/" hook=type_checker expr=%{IS_SUBREQ} -</Location></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} && %{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"><Location /> -LogMessage "%{reqenv:X-Foo}" hook=all -</Location></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 @@ -135,6 +88,53 @@ </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"><Location /foo/> +LogMessage "/foo/ has been requested" +</Location></pre> + + </li> + + <li> + Log message if request to /foo/* is processed in a sub-request: + <pre class="prettyprint lang-config"><Location /foo/> +LogMessage "subrequest to /foo/" hook=type_checker expr=%{IS_SUBREQ} +</Location></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} && %{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"><Location /> +LogMessage "%{reqenv:X-Foo}" hook=all +</Location></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"> <p><span>Available Languages: </span><a href="../en/mod/mod_log_debug.html" title="English"> en </a></p> diff --git a/docs/manual/mod/mod_log_forensic.html.en b/docs/manual/mod/mod_log_forensic.html.en index 2143613a79..a9dd5892d1 100644 --- a/docs/manual/mod/mod_log_forensic.html.en +++ b/docs/manual/mod/mod_log_forensic.html.en @@ -66,6 +66,52 @@ <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 @@ -112,52 +158,6 @@ 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"> en </a> | diff --git a/docs/manual/mod/mod_log_forensic.html.ja.utf8 b/docs/manual/mod/mod_log_forensic.html.ja.utf8 index dbb3840d59..47ac727a7a 100644 --- a/docs/manual/mod/mod_log_forensic.html.ja.utf8 +++ b/docs/manual/mod/mod_log_forensic.html.ja.utf8 @@ -70,50 +70,6 @@ <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> @@ -161,6 +117,50 @@ </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"> en </a> | diff --git a/docs/manual/mod/mod_log_forensic.html.tr.utf8 b/docs/manual/mod/mod_log_forensic.html.tr.utf8 index f892ac6929..e552c1a14c 100644 --- a/docs/manual/mod/mod_log_forensic.html.tr.utf8 +++ b/docs/manual/mod/mod_log_forensic.html.tr.utf8 @@ -66,50 +66,6 @@ <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> @@ -156,6 +112,50 @@ </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"> en </a> | diff --git a/docs/manual/mod/mod_logio.html.en b/docs/manual/mod/mod_logio.html.en index b8c997f731..e924fa4581 100644 --- a/docs/manual/mod/mod_logio.html.en +++ b/docs/manual/mod/mod_logio.html.en @@ -64,6 +64,23 @@ <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> @@ -99,23 +116,6 @@ \"%{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"> en </a> | diff --git a/docs/manual/mod/mod_logio.html.ja.utf8 b/docs/manual/mod/mod_logio.html.ja.utf8 index 2223e1dab7..12bb026e1e 100644 --- a/docs/manual/mod/mod_logio.html.ja.utf8 +++ b/docs/manual/mod/mod_logio.html.ja.utf8 @@ -64,6 +64,19 @@ <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> @@ -90,19 +103,6 @@ \"%{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"> en </a> | diff --git a/docs/manual/mod/mod_logio.html.ko.euc-kr b/docs/manual/mod/mod_logio.html.ko.euc-kr index cc5aceeea1..f7bd76c41a 100644 --- a/docs/manual/mod/mod_logio.html.ko.euc-kr +++ b/docs/manual/mod/mod_logio.html.ko.euc-kr @@ -61,6 +61,19 @@ <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> @@ -89,19 +102,6 @@ </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"> en </a> | diff --git a/docs/manual/mod/mod_logio.html.tr.utf8 b/docs/manual/mod/mod_logio.html.tr.utf8 index 839845251c..ec18d1c252 100644 --- a/docs/manual/mod/mod_logio.html.tr.utf8 +++ b/docs/manual/mod/mod_logio.html.tr.utf8 @@ -66,6 +66,18 @@ <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> @@ -91,18 +103,6 @@ \"%{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"> en </a> | diff --git a/docs/manual/mod/mod_lua.html.en b/docs/manual/mod/mod_lua.html.en index 6db6d67177..ae2c46f1aa 100644 --- a/docs/manual/mod/mod_lua.html.en +++ b/docs/manual/mod/mod_lua.html.en @@ -95,6 +95,629 @@ trust, as it can be abused to change the internal workings of httpd.</p> <li><img alt="" src="../images/down.gif" /> <a href="#databases">Database connectivity</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="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 +<Location /> + Require foo johndoe +</Location></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> + + + + +</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> + + <div class="example"><h3>Examples:</h3><pre class="prettyprint lang-config">LuaCodeCache stat +LuaCodeCache forever +LuaCodeCache never</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="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> + +</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) + + -- look for auth info + auth = r.headers_in['Authorization'] + if auth ~= nil then + -- fake the user + 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> + + <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 +</p> + +</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. + + 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="directive-section"><h2><a name="LuaHookMapToStorage" id="LuaHookMapToStorage">LuaHookMapToStorage</a> <a name="luahookmaptostorage" id="luahookmaptostorage">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a hook for the map_to_storage phase of request processing</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaHookMapToStorage /path/to/lua/script.lua hook_function_name</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr> +</table> + <p>Like <code class="directive">LuaHookTranslateName</code> but executed at the + map-to-storage phase of a request. Modules like mod_cache run at this phase, + which makes for an interesting example on what to do here:</p> + <pre class="prettyprint lang-config">LuaHookMapToStorage /path/to/lua/script.lua check_cache</pre> + + <pre class="prettyprint lang-lua">require"apache2" +cached_files = {} + +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> + + + +</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> + + <p>Example:</p> + +<pre class="prettyprint lang-config"># httpd.conf +LuaHookTranslateName /scripts/conf/hooks.lua silly_mapper</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> + + + <div class="note"><h3>Context</h3><p>This directive is not valid in <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code>, <code class="directive"><a href="../mod/core.html#files"><Files></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="directive-section"><h2><a name="LuaHookTypeChecker" id="LuaHookTypeChecker">LuaHookTypeChecker</a> <a name="luahooktypechecker" id="luahooktypechecker">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a hook for the type_checker phase of request processing</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaHookTypeChecker /path/to/lua/script.lua hook_function_name</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr> +</table><p> + This directive provides a hook for the type_checker phase of the request processing. + This phase is where requests are assigned a content type and a handler, and thus can + be used to modify the type and handler based on input: + </p> + <pre class="prettyprint lang-config">LuaHookTypeChecker /path/to/lua/script.lua type_checker</pre> + + <pre class="prettyprint lang-lua"> function type_checker(r) + if r.uri:match("%.to_gif$") then -- match foo.png.to_gif + r.content_type = "image/gif" -- assign it the image/gif type + r.handler = "gifWizard" -- tell the gifWizard module to handle this + r.filename = r.uri:gsub("%.to_gif$", "") -- fix the filename requested + return apache2.OK + end + + 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 +<Files *.lua> + SetInputFilter myInputFilter +</Files></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("&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 +<Files *.lua> + SetOutputFilter myOutputFilter +</Files></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)<br/>\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"><Location></a></code> or <code class="directive"><a href="../mod/core.html#directory"><Directory></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"><Directory></a></code>, <code class="directive"><a href="../mod/core.html#files"><Files></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> @@ -1252,629 +1875,6 @@ collectgarbage() -- close the handle via GC</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 -<Location /> - Require foo johndoe -</Location></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> - - - - -</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> - - <div class="example"><h3>Examples:</h3><pre class="prettyprint lang-config">LuaCodeCache stat -LuaCodeCache forever -LuaCodeCache never</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="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> - -</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) - - -- look for auth info - auth = r.headers_in['Authorization'] - if auth ~= nil then - -- fake the user - 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> - - <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 -</p> - -</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. - - 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="directive-section"><h2><a name="LuaHookMapToStorage" id="LuaHookMapToStorage">LuaHookMapToStorage</a> <a name="luahookmaptostorage" id="luahookmaptostorage">Directive</a></h2> -<table class="directive"> -<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a hook for the map_to_storage phase of request processing</td></tr> -<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaHookMapToStorage /path/to/lua/script.lua hook_function_name</code></td></tr> -<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr> -<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr> -<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr> -<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr> -</table> - <p>Like <code class="directive">LuaHookTranslateName</code> but executed at the - map-to-storage phase of a request. Modules like mod_cache run at this phase, - which makes for an interesting example on what to do here:</p> - <pre class="prettyprint lang-config">LuaHookMapToStorage /path/to/lua/script.lua check_cache</pre> - - <pre class="prettyprint lang-lua">require"apache2" -cached_files = {} - -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> - - - -</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> - - <p>Example:</p> - -<pre class="prettyprint lang-config"># httpd.conf -LuaHookTranslateName /scripts/conf/hooks.lua silly_mapper</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> - - - <div class="note"><h3>Context</h3><p>This directive is not valid in <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code>, <code class="directive"><a href="../mod/core.html#files"><Files></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="directive-section"><h2><a name="LuaHookTypeChecker" id="LuaHookTypeChecker">LuaHookTypeChecker</a> <a name="luahooktypechecker" id="luahooktypechecker">Directive</a></h2> -<table class="directive"> -<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a hook for the type_checker phase of request processing</td></tr> -<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaHookTypeChecker /path/to/lua/script.lua hook_function_name</code></td></tr> -<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr> -<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr> -<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr> -<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr> -</table><p> - This directive provides a hook for the type_checker phase of the request processing. - This phase is where requests are assigned a content type and a handler, and thus can - be used to modify the type and handler based on input: - </p> - <pre class="prettyprint lang-config">LuaHookTypeChecker /path/to/lua/script.lua type_checker</pre> - - <pre class="prettyprint lang-lua"> function type_checker(r) - if r.uri:match("%.to_gif$") then -- match foo.png.to_gif - r.content_type = "image/gif" -- assign it the image/gif type - r.handler = "gifWizard" -- tell the gifWizard module to handle this - r.filename = r.uri:gsub("%.to_gif$", "") -- fix the filename requested - return apache2.OK - end - - 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 -<Files *.lua> - SetInputFilter myInputFilter -</Files></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("&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 -<Files *.lua> - SetOutputFilter myOutputFilter -</Files></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)<br/>\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"><Location></a></code> or <code class="directive"><a href="../mod/core.html#directory"><Directory></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"><Directory></a></code>, <code class="directive"><a href="../mod/core.html#files"><Files></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> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_lua.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_lua.html.fr b/docs/manual/mod/mod_lua.html.fr index a170843ae0..19ecb4df82 100644 --- a/docs/manual/mod/mod_lua.html.fr +++ b/docs/manual/mod/mod_lua.html.fr @@ -101,6 +101,664 @@ fonctionnement interne de httpd.</p> <li><img alt="" src="../images/down.gif" /> <a href="#databases">Connectivit aux bases de donnes</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="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>Exprimental</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 enregistre en tant que fournisseur +d'autorisation, elle peut tre appele via la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> :</p> + + +<pre class="prettyprint lang-config">LuaRoot /usr/local/apache2/lua +LuaAuthzProvider foo authz.lua authz_check_foo +<Location /> + Require foo johndoe +</Location></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> + + + +</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">Dfaut:</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, rpertoire, .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>Exprimental</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr> +</table><p> + Cette directive permet de dfinir le comportement du cache de code + en mmoire. La valeur par dfaut est stat ; dans ce cas, le script + du niveau le plus haut (et pas les scripts inclus) est vrifi + chaque fois que ce fichier est ncessaire, et est recharg si la + date de modification est plus rcente que celle du script dj + charg. Les autres valeurs permettent respectivement de garder le + fichier en cache perptuellement (forever - jamais vrifi ni + remplac), ou de ne jamais le mettre en cache (never).</p> + + <p>En gnral, les valeurs stat et forever sont utilises pour un + serveur en production, et les valeurs stat ou never pour un serveur + en dveloppement.</p> + + <div class="example"><h3>Exemples :</h3><pre class="prettyprint lang-config">LuaCodeCache stat +LuaCodeCache forever +LuaCodeCache never</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="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'entre pour la phase access_checker du +traitement de la requte</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, rpertoire, .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>Exprimental</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 troisime 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 gnral OK, DECLINED, ou +HTTP_FORBIDDEN.</p> +<div class="note"><h3>Ordonnancement</h3><p>Les arguments optionnels + "early" ou "late" permettent de contrler le moment auquel ce script + s'excute 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'entre pour la phase auth_checker du +traitement de la requte</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, rpertoire, .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>Exprimental</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 troisime 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 requte. Cette directive peut s'utiliser pour +implmenter une vrification arbitraire de l'authentification et de +l'autorisation. Voici un exemple trs simple : +</p> +<pre class="prettyprint lang-lua">require 'apache2' + +-- fonction d'accroche authcheck fictive +-- Si la requte ne contient aucune donne d'authentification, l'en-tte +-- de la rponse est dfini et un code 401 est renvoy afin de demander au +-- navigateur d'effectuer une authentification basique. Si la requte +-- comporte des donnes d'authentification, elles ne sont pas vraiment +-- consultes, mais on admet la prise en compte de l'utilisateur 'foo' et +-- on la valide. On vrifie ensuite si l'utilisateur est bien 'foo' et on +-- accepte la requte. +function authcheck_hook(r) + + -- recherche des informations d'authentification + auth = r.headers_in['Authorization'] + if auth ~= nil then + -- dfinition d'un utilisateur par dfaut + 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> + +<div class="note"><h3>Ordonnancement</h3><p>Les arguments optionnels + "early" ou "late" permettent de contrler le moment auquel ce script + s'excute 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'entre pour la phase check_user_id du +traitement de la requte</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, rpertoire, .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>Exprimental</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'entre pour la phase de correction du +traitement de la requte</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, rpertoire, .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>Exprimental</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr> +</table> +<p> + Idem LuaHookTranslateName, mais s'excute durant la phase de + correction. +</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="luahookinsertfilter" id="luahookinsertfilter">Directive</a> <a name="LuaHookInsertFilter" id="LuaHookInsertFilter">LuaHookInsertFilter</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entre pour la phase insert_filter du +traitement de la requte</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, rpertoire, .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>Exprimental</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr> +</table><p>Non encore implment</p> +</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 requte</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, rpertoire, .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>Exprimental</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'excuter une fonction + lorsque httpd entre dans la phase de journalisation du traitement + d'une requte. Vous pouvez ainsi ajouter des donnes vos propres + entres de journalisation, manipuler les entres du journal standard + avant leur enregistrement ou empcher l'enregistrement d'une entre + dans le journal. Pour empcher l'enregistrement normal des entres + 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'entre dans le journal standard.. + -- Si on obtient 2, on nettoie un peu les donnes avant que httpd ne + -- les enregistre dans le journal standard. + + if math.random(1,2) == 1 then + -- On effectue notre propre journalisation et le journal + -- standard n'est pas aliment + local f = io.open("/foo/secret.log", "a") + if f then + f:write("Quelque chose de secret est arriv " .. r.uri .. "\n") + f:close() + end + return apache2.DONE -- On dit httpd de ne rien enregistrer + --dans le journal standard + else + r.uri = r.uri:gsub("somesecretstuff", "") -- nettoie les donnes + return apache2.OK -- et httpd doit alors les enregistrer. + 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="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'entre pour la phase map_to_storage du +traitement de la requte</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, rpertoire, .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>Exprimental</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'excute la + phase map-to-storage du traitement de la requte. Les modules comme + mod_cache agissent pendant cette phase, ce qui permet de prsenter + un exemple intressant 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 = {} + +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 -- Ne concerne que les fichiers PNG + local file = cached_files[r.filename] -- Vrifie les entres 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 dfaut des fichiers PNG + end + 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'entre la phase du nom de +traduction du traitement de la requte</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>Exprimental</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 troisime 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'entre ( + APR_HOOK_MIDDLE) la phase du nom de traduction du traitement de la + requte. 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 dfinie dans le module apache2 : apache2.OK, + apache2.DECLINED, ou apache2.DONE.</p> + + <p>Pour ceux qui ne sont pas familiers avec les points d'entre + (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 requte doit tre interrompu, la valeur renvoye + doit tre apache2.DONE.</p> + + <p>Exemple :</p> + +<pre class="prettyprint lang-config"># httpd.conf +LuaHookTranslateName /scripts/conf/hooks.lua silly_mapper</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> + + + <div class="note"><h3>Contexte</h3><p>Cette directive ne peut tre + utilise ni l'intrieur d'une section <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> ou <code class="directive"><a href="../mod/core.html#files"><Files></a></code>, ni dans un fichier htaccess.</p></div> + + <div class="note"><h3>Ordonnancement</h3><p>Les arguments optionnels + "early" ou "late" permettent de contrler le moment auquel ce script + s'excute 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'entre pour la phase type_checker du +traitement de la requte</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, rpertoire, .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>Exprimental</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>Contrle la manire dont les sections de configuration +parentes sont fusionnes 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">Dfaut:</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, rpertoire, .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>Exprimental</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 suprieures</td></tr> +</table><p>Par dfaut, si des directives LuaHook* se trouvent dans + des sections de configuration Directory ou Location qui se + chevauchent, les scripts + dfinis dans les sections les plus spcifiques s'excutent + <em>aprs</em> ceux dfinis dans les sections plus gnriques + (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 dfaut consistait + ignorer les directives LuaHook* situes 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 entre</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>Exprimental</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 entre sous la forme +d'une fonction Lua. A l'instar des filtres en sorties, les filtres en +entre fonctionnent comme des sous-routines, intervenant dans un premier +temps avant l'envoi du contenu des tampons, puis chaque fois qu'un +paquet de donnes doit tre transmis la chane, et ventuellement +produisant toute donne ajouter aux donnes en entre. La variable +globale <code>bucket</code> contient les paquets de donnes tels qu'ils +sont transmis au script Lua : +</p> + +<pre class="prettyprint lang-config">LuaInputFilter myInputFilter /www/filter.lua input_filter +<Files *.lua> + SetInputFilter myInputFilter +</Files></pre> + +<pre class="prettyprint lang-lua">--[[ + Exemple de filtre en entre qui convertit toutes les donnes POST en + majuscules. +]]-- +function input_filter(r) + print("luaInputFilter called") -- pour dbogage + coroutine.yield() -- attend des paquets de donnes + while bucket do -- Pour chaque paquet, faire ... + local output = string.upper(bucket) -- Convertit toutes les donnes POST en majuscules + coroutine.yield(output) -- Envoie les donnes traites la chane de filtrage + end + -- plus aucune donne traiter. + coroutine.yield("&filterSignature=1234") -- Ajoute une signature la fin +end</pre> + +<p> +Le filtre en entre peut interdire ou sauter un filtre s'il est +considr comme indsirable : +</p> +<pre class="prettyprint lang-lua">function input_filter(r) + if not good then + return -- Empche tout simplement le filtrage et transmet le contenu original + end + coroutine.yield() -- attend des paquets de donnes + ... -- insert les filtres ici +end</pre> + +<p> +Voir "<a href="#modifying_buckets">Modification de contenu avec les +filtres Lua</a>" pour plus de dtails. +</p> + +</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, rpertoire, .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>Exprimental</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 modle d'uri avec + une fonction de gestionnaire situe dans un fichier spcifique. 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 problmes de scurit 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 + aprs 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 dfaut si aucun nom de fonction spcifique n'est + spcifi.</p> + +</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>Exprimental</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>>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 +entre fonctionnent comme des sous-routines, intervenant dans un premier +temps avant l'envoi du contenu des tampons, puis chaque fois qu'un +paquet de donnes doit tre transmis la chane, et ventuellement +produisant toute donne ajouter aux donnes en sortie. La variable +globale <code>bucket</code> contient les paquets de donnes tels qu'ils +sont transmis au script Lua : +</p> + +<pre class="prettyprint lang-config">LuaOutputFilter myOutputFilter /www/filter.lua output_filter +<Files *.lua> + SetOutputFilter myOutputFilter +</Files></pre> + +<pre class="prettyprint lang-lua">--[[ + Exemple de filtre en sortie qui chappe toutes les entits HTML en + sortie +]]-- +function output_filter(r) + coroutine.yield("(Handled by myOutputFilter)<br/>\n") -- Ajoute des donnes au dbut de la sortie, + -- puis attend des paquets de donnes traiter + while bucket do -- Pour chaque paquet, faire ... + local output = r:escape_html(bucket) -- Echappe les donnes en sortie + coroutine.yield(output) -- Envoie les donnes traites la chane + end + -- plus aucune donne traiter. +end</pre> + +<p> +Comme les filres en entre, le filtre en sortie peut interdire ou sauter un filtre s'il est +considr comme indsirable : +</p> +<pre class="prettyprint lang-lua">function output_filter(r) + if not r.content_type:match("text/html") then + return -- Empche tout simplement le filtrage et transmet le contenu original + end + coroutine.yield() -- attend des paquets de donnes + ... -- 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 dtails. +</p> + + +</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 rpertoire 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, rpertoire, .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>Exprimental</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 bibliothques partages 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 rpertoire 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, rpertoire, .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>Exprimental</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 mmes 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'entre pour la gestion rapide du +traitement de la requte</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, rpertoire, .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>Exprimental</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr> +</table> + <p>Cette phase s'excute juste aprs l'attribution de la requte + un serveur virtuel, et permet d'effectuer certains traitements avant + le droulement des autres phases, ou de servir une requte sans + avoir la traduire, l'associer un espace de stockage, etc... + Comme cette phase s'excute avant toute autre, les directives telles + que <code class="directive"><a href="../mod/core.html#location"><Location></a></code> ou + <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> ne + sont pas encore prises en compte, car Les URI n'ont pas encore t + entirement interprts. + </p> + <div class="note"><h3>Contexte</h3><p>Cette directive ne peut tre + utilise ni l'intrieur d'une section <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> ou <code class="directive"><a href="../mod/core.html#files"><Files></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>Spcifie le chemin de base pour la rsolution 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/rpertoire</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, rpertoire, .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>Exprimental</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr> +</table> + <p>Cette directive permet de spcifier 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 rsolus par + rapport au rpertoire 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 dfaut 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">Dfaut:</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, rpertoire, .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>Exprimental</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr> +</table> + <p>Cette directive permet de spcifier la dure de vie de + l'interprteur Lua qui sera utilis dans ce "rpertoire". La valeur + par dfaut est "once".</p> + + <dl> + <dt>once:</dt> <dd>utilise l'interprteur une fois.</dd> + + <dt>request:</dt> <dd>utilise l'interprteur pour traiter tout ce + qui est bas sur le mme fichier dans la requte, et qui se trouve + aussi dans la porte de la requte.</dd> + + <dt>conn:</dt> <dd>idem request, mais attach connection_rec</dd> + + <dt>thread:</dt> <dd>Utilise l'interprteur pendant toute la dure + de vie du thread qui traite la requte (disponible seulement avec + les MPMs threads).</dd> + + <dt>server:</dt> <dd>Le comportement est ici diffrent, car la + porte du serveur prsente une dure de vie assez longue, et + plusieurs threads vont partager le mme server_rec. Pour grer tout + ceci, les tats lua du serveur sont stocks dans une liste de ressources + apr. Les arguments <code>min</code> et <code>max</code> permettent + de spcifier les nombres minimaux et maximaux d'tats lua stocker + dans la liste.</dd> + </dl> + <p>En gnral, les portes <code>thread</code> et <code>server</code> + sont 2 3 fois plus rapides que les autres, car elles n'ont pas besoin + de rgnrer de nouveaux tats Lua chaque requte (comme c'est le + cas avec le MPM event, o mme les connexions persistantes utilisent un + nouveau thread pour chaque requte). Si vous pensez que vos scripts + n'auront pas de problme s'il rutilisent un tat, alors les portes + <code>thread</code> ou <code>server</code> doivent tre utilises car + elles prsenteront de meilleures performances. Alors que la porte + <code>thread</code> fournira les rponses les plus rapides, la porte + <code>server</code> utilisera moins de mmoire car les tats sont + rassembls dans des jeux, permettant par exemple 1000 threads de + partager 100 tats Lua, ne ncessitant ainsi que 10% de la mmoire + requise par la porte <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> @@ -1347,664 +2005,6 @@ le cas des requtes dynamiques, utilisez <code>db:prepare</code> ou </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>Exprimental</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 enregistre en tant que fournisseur -d'autorisation, elle peut tre appele via la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> :</p> - - -<pre class="prettyprint lang-config">LuaRoot /usr/local/apache2/lua -LuaAuthzProvider foo authz.lua authz_check_foo -<Location /> - Require foo johndoe -</Location></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> - - - -</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">Dfaut:</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, rpertoire, .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>Exprimental</td></tr> -<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr> -</table><p> - Cette directive permet de dfinir le comportement du cache de code - en mmoire. La valeur par dfaut est stat ; dans ce cas, le script - du niveau le plus haut (et pas les scripts inclus) est vrifi - chaque fois que ce fichier est ncessaire, et est recharg si la - date de modification est plus rcente que celle du script dj - charg. Les autres valeurs permettent respectivement de garder le - fichier en cache perptuellement (forever - jamais vrifi ni - remplac), ou de ne jamais le mettre en cache (never).</p> - - <p>En gnral, les valeurs stat et forever sont utilises pour un - serveur en production, et les valeurs stat ou never pour un serveur - en dveloppement.</p> - - <div class="example"><h3>Exemples :</h3><pre class="prettyprint lang-config">LuaCodeCache stat -LuaCodeCache forever -LuaCodeCache never</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="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'entre pour la phase access_checker du -traitement de la requte</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, rpertoire, .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>Exprimental</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 troisime 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 gnral OK, DECLINED, ou -HTTP_FORBIDDEN.</p> -<div class="note"><h3>Ordonnancement</h3><p>Les arguments optionnels - "early" ou "late" permettent de contrler le moment auquel ce script - s'excute 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'entre pour la phase auth_checker du -traitement de la requte</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, rpertoire, .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>Exprimental</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 troisime 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 requte. Cette directive peut s'utiliser pour -implmenter une vrification arbitraire de l'authentification et de -l'autorisation. Voici un exemple trs simple : -</p> -<pre class="prettyprint lang-lua">require 'apache2' - --- fonction d'accroche authcheck fictive --- Si la requte ne contient aucune donne d'authentification, l'en-tte --- de la rponse est dfini et un code 401 est renvoy afin de demander au --- navigateur d'effectuer une authentification basique. Si la requte --- comporte des donnes d'authentification, elles ne sont pas vraiment --- consultes, mais on admet la prise en compte de l'utilisateur 'foo' et --- on la valide. On vrifie ensuite si l'utilisateur est bien 'foo' et on --- accepte la requte. -function authcheck_hook(r) - - -- recherche des informations d'authentification - auth = r.headers_in['Authorization'] - if auth ~= nil then - -- dfinition d'un utilisateur par dfaut - 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> - -<div class="note"><h3>Ordonnancement</h3><p>Les arguments optionnels - "early" ou "late" permettent de contrler le moment auquel ce script - s'excute 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'entre pour la phase check_user_id du -traitement de la requte</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, rpertoire, .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>Exprimental</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'entre pour la phase de correction du -traitement de la requte</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, rpertoire, .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>Exprimental</td></tr> -<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr> -</table> -<p> - Idem LuaHookTranslateName, mais s'excute durant la phase de - correction. -</p> - -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="directive-section"><h2><a name="luahookinsertfilter" id="luahookinsertfilter">Directive</a> <a name="LuaHookInsertFilter" id="LuaHookInsertFilter">LuaHookInsertFilter</a></h2> -<table class="directive"> -<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entre pour la phase insert_filter du -traitement de la requte</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, rpertoire, .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>Exprimental</td></tr> -<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr> -</table><p>Non encore implment</p> -</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 requte</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, rpertoire, .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>Exprimental</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'excuter une fonction - lorsque httpd entre dans la phase de journalisation du traitement - d'une requte. Vous pouvez ainsi ajouter des donnes vos propres - entres de journalisation, manipuler les entres du journal standard - avant leur enregistrement ou empcher l'enregistrement d'une entre - dans le journal. Pour empcher l'enregistrement normal des entres - 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'entre dans le journal standard.. - -- Si on obtient 2, on nettoie un peu les donnes avant que httpd ne - -- les enregistre dans le journal standard. - - if math.random(1,2) == 1 then - -- On effectue notre propre journalisation et le journal - -- standard n'est pas aliment - local f = io.open("/foo/secret.log", "a") - if f then - f:write("Quelque chose de secret est arriv " .. r.uri .. "\n") - f:close() - end - return apache2.DONE -- On dit httpd de ne rien enregistrer - --dans le journal standard - else - r.uri = r.uri:gsub("somesecretstuff", "") -- nettoie les donnes - return apache2.OK -- et httpd doit alors les enregistrer. - 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="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'entre pour la phase map_to_storage du -traitement de la requte</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, rpertoire, .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>Exprimental</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'excute la - phase map-to-storage du traitement de la requte. Les modules comme - mod_cache agissent pendant cette phase, ce qui permet de prsenter - un exemple intressant 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 = {} - -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 -- Ne concerne que les fichiers PNG - local file = cached_files[r.filename] -- Vrifie les entres 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 dfaut des fichiers PNG - end - 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'entre la phase du nom de -traduction du traitement de la requte</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>Exprimental</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 troisime 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'entre ( - APR_HOOK_MIDDLE) la phase du nom de traduction du traitement de la - requte. 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 dfinie dans le module apache2 : apache2.OK, - apache2.DECLINED, ou apache2.DONE.</p> - - <p>Pour ceux qui ne sont pas familiers avec les points d'entre - (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 requte doit tre interrompu, la valeur renvoye - doit tre apache2.DONE.</p> - - <p>Exemple :</p> - -<pre class="prettyprint lang-config"># httpd.conf -LuaHookTranslateName /scripts/conf/hooks.lua silly_mapper</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> - - - <div class="note"><h3>Contexte</h3><p>Cette directive ne peut tre - utilise ni l'intrieur d'une section <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> ou <code class="directive"><a href="../mod/core.html#files"><Files></a></code>, ni dans un fichier htaccess.</p></div> - - <div class="note"><h3>Ordonnancement</h3><p>Les arguments optionnels - "early" ou "late" permettent de contrler le moment auquel ce script - s'excute 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'entre pour la phase type_checker du -traitement de la requte</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, rpertoire, .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>Exprimental</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>Contrle la manire dont les sections de configuration -parentes sont fusionnes 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">Dfaut:</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, rpertoire, .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>Exprimental</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 suprieures</td></tr> -</table><p>Par dfaut, si des directives LuaHook* se trouvent dans - des sections de configuration Directory ou Location qui se - chevauchent, les scripts - dfinis dans les sections les plus spcifiques s'excutent - <em>aprs</em> ceux dfinis dans les sections plus gnriques - (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 dfaut consistait - ignorer les directives LuaHook* situes 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 entre</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>Exprimental</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 entre sous la forme -d'une fonction Lua. A l'instar des filtres en sorties, les filtres en -entre fonctionnent comme des sous-routines, intervenant dans un premier -temps avant l'envoi du contenu des tampons, puis chaque fois qu'un -paquet de donnes doit tre transmis la chane, et ventuellement -produisant toute donne ajouter aux donnes en entre. La variable -globale <code>bucket</code> contient les paquets de donnes tels qu'ils -sont transmis au script Lua : -</p> - -<pre class="prettyprint lang-config">LuaInputFilter myInputFilter /www/filter.lua input_filter -<Files *.lua> - SetInputFilter myInputFilter -</Files></pre> - -<pre class="prettyprint lang-lua">--[[ - Exemple de filtre en entre qui convertit toutes les donnes POST en - majuscules. -]]-- -function input_filter(r) - print("luaInputFilter called") -- pour dbogage - coroutine.yield() -- attend des paquets de donnes - while bucket do -- Pour chaque paquet, faire ... - local output = string.upper(bucket) -- Convertit toutes les donnes POST en majuscules - coroutine.yield(output) -- Envoie les donnes traites la chane de filtrage - end - -- plus aucune donne traiter. - coroutine.yield("&filterSignature=1234") -- Ajoute une signature la fin -end</pre> - -<p> -Le filtre en entre peut interdire ou sauter un filtre s'il est -considr comme indsirable : -</p> -<pre class="prettyprint lang-lua">function input_filter(r) - if not good then - return -- Empche tout simplement le filtrage et transmet le contenu original - end - coroutine.yield() -- attend des paquets de donnes - ... -- insert les filtres ici -end</pre> - -<p> -Voir "<a href="#modifying_buckets">Modification de contenu avec les -filtres Lua</a>" pour plus de dtails. -</p> - -</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, rpertoire, .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>Exprimental</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 modle d'uri avec - une fonction de gestionnaire situe dans un fichier spcifique. 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 problmes de scurit 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 - aprs 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 dfaut si aucun nom de fonction spcifique n'est - spcifi.</p> - -</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>Exprimental</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>>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 -entre fonctionnent comme des sous-routines, intervenant dans un premier -temps avant l'envoi du contenu des tampons, puis chaque fois qu'un -paquet de donnes doit tre transmis la chane, et ventuellement -produisant toute donne ajouter aux donnes en sortie. La variable -globale <code>bucket</code> contient les paquets de donnes tels qu'ils -sont transmis au script Lua : -</p> - -<pre class="prettyprint lang-config">LuaOutputFilter myOutputFilter /www/filter.lua output_filter -<Files *.lua> - SetOutputFilter myOutputFilter -</Files></pre> - -<pre class="prettyprint lang-lua">--[[ - Exemple de filtre en sortie qui chappe toutes les entits HTML en - sortie -]]-- -function output_filter(r) - coroutine.yield("(Handled by myOutputFilter)<br/>\n") -- Ajoute des donnes au dbut de la sortie, - -- puis attend des paquets de donnes traiter - while bucket do -- Pour chaque paquet, faire ... - local output = r:escape_html(bucket) -- Echappe les donnes en sortie - coroutine.yield(output) -- Envoie les donnes traites la chane - end - -- plus aucune donne traiter. -end</pre> - -<p> -Comme les filres en entre, le filtre en sortie peut interdire ou sauter un filtre s'il est -considr comme indsirable : -</p> -<pre class="prettyprint lang-lua">function output_filter(r) - if not r.content_type:match("text/html") then - return -- Empche tout simplement le filtrage et transmet le contenu original - end - coroutine.yield() -- attend des paquets de donnes - ... -- 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 dtails. -</p> - - -</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 rpertoire 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, rpertoire, .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>Exprimental</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 bibliothques partages 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 rpertoire 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, rpertoire, .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>Exprimental</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 mmes 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'entre pour la gestion rapide du -traitement de la requte</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, rpertoire, .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>Exprimental</td></tr> -<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr> -</table> - <p>Cette phase s'excute juste aprs l'attribution de la requte - un serveur virtuel, et permet d'effectuer certains traitements avant - le droulement des autres phases, ou de servir une requte sans - avoir la traduire, l'associer un espace de stockage, etc... - Comme cette phase s'excute avant toute autre, les directives telles - que <code class="directive"><a href="../mod/core.html#location"><Location></a></code> ou - <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> ne - sont pas encore prises en compte, car Les URI n'ont pas encore t - entirement interprts. - </p> - <div class="note"><h3>Contexte</h3><p>Cette directive ne peut tre - utilise ni l'intrieur d'une section <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> ou <code class="directive"><a href="../mod/core.html#files"><Files></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>Spcifie le chemin de base pour la rsolution 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/rpertoire</code></td></tr> -<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, rpertoire, .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>Exprimental</td></tr> -<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr> -</table> - <p>Cette directive permet de spcifier 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 rsolus par - rapport au rpertoire 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 dfaut 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">Dfaut:</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, rpertoire, .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>Exprimental</td></tr> -<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr> -</table> - <p>Cette directive permet de spcifier la dure de vie de - l'interprteur Lua qui sera utilis dans ce "rpertoire". La valeur - par dfaut est "once".</p> - - <dl> - <dt>once:</dt> <dd>utilise l'interprteur une fois.</dd> - - <dt>request:</dt> <dd>utilise l'interprteur pour traiter tout ce - qui est bas sur le mme fichier dans la requte, et qui se trouve - aussi dans la porte de la requte.</dd> - - <dt>conn:</dt> <dd>idem request, mais attach connection_rec</dd> - - <dt>thread:</dt> <dd>Utilise l'interprteur pendant toute la dure - de vie du thread qui traite la requte (disponible seulement avec - les MPMs threads).</dd> - - <dt>server:</dt> <dd>Le comportement est ici diffrent, car la - porte du serveur prsente une dure de vie assez longue, et - plusieurs threads vont partager le mme server_rec. Pour grer tout - ceci, les tats lua du serveur sont stocks dans une liste de ressources - apr. Les arguments <code>min</code> et <code>max</code> permettent - de spcifier les nombres minimaux et maximaux d'tats lua stocker - dans la liste.</dd> - </dl> - <p>En gnral, les portes <code>thread</code> et <code>server</code> - sont 2 3 fois plus rapides que les autres, car elles n'ont pas besoin - de rgnrer de nouveaux tats Lua chaque requte (comme c'est le - cas avec le MPM event, o mme les connexions persistantes utilisent un - nouveau thread pour chaque requte). Si vous pensez que vos scripts - n'auront pas de problme s'il rutilisent un tat, alors les portes - <code>thread</code> ou <code>server</code> doivent tre utilises car - elles prsenteront de meilleures performances. Alors que la porte - <code>thread</code> fournira les rponses les plus rapides, la porte - <code>server</code> utilisera moins de mmoire car les tats sont - rassembls dans des jeux, permettant par exemple 1000 threads de - partager 100 tats Lua, ne ncessitant ainsi que 10% de la mmoire - requise par la porte <code>thread</code>. - </p> - -</div> </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_lua.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_macro.html.en b/docs/manual/mod/mod_macro.html.en index b5e0b17ef7..d430089acf 100644 --- a/docs/manual/mod/mod_macro.html.en +++ b/docs/manual/mod/mod_macro.html.en @@ -54,6 +54,81 @@ <li><img alt="" src="../images/down.gif" /> <a href="#examples">Examples</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="Macro" id="Macro"><Macro></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> +<Macro <var>name</var> [<var>par1</var> .. <var>parN</var>]> +... </Macro></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"><Macro LocalAccessPolicy> + Require ip 10.2.16.0/24 +</Macro> + +<Macro RestrictedAccessPolicy $ipnumbers> + Require ip $ipnumbers +</Macro></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> @@ -191,81 +266,6 @@ UndefMacro DirGroup</pre> </div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="directive-section"><h2><a name="Macro" id="Macro"><Macro></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> -<Macro <var>name</var> [<var>par1</var> .. <var>parN</var>]> -... </Macro></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"><Macro LocalAccessPolicy> - Require ip 10.2.16.0/24 -</Macro> - -<Macro RestrictedAccessPolicy $ipnumbers> - Require ip $ipnumbers -</Macro></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"> <p><span>Available Languages: </span><a href="../en/mod/mod_macro.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_macro.html.fr b/docs/manual/mod/mod_macro.html.fr index d423470385..7195a4a43f 100644 --- a/docs/manual/mod/mod_macro.html.fr +++ b/docs/manual/mod/mod_macro.html.fr @@ -56,6 +56,75 @@ de configuration Apache.</td></tr> <li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="macro" id="macro">Directive</a> <a name="Macro" id="Macro"><Macro></a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dfinition d'une macro dans un fichier de configuration</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code> +<Macro <var>nom</var> [<var>par1</var> .. <var>parN</var>]> +... </Macro></code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, rpertoire</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 dfinir une macro + dans un fichier de configuration Apache. Le premier argument est le nom + de la macro, et les arguments suivants sont les paramtres. Il + est de bon aloi de prfixer les noms des paramtres d'une macro + avec un caractre parmi '<code>$%@</code>', et d'viter d'en faire + de mme avec les noms de macros. + </p> + + <pre class="prettyprint lang-config"><Macro LocalAccessPolicy> + Require ip 10.2.16.0/24 +</Macro> + +<Macro RestrictedAccessPolicy $ipnumbers> + Require ip $ipnumbers +</Macro></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, rpertoire</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, rpertoire</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 considre est expanse. Son nombre d'arguments doit tre gal au + nombre de paramtres prciss dans sa dfinition. Les valeurs passes en + argument sont attribues aux paramtres correspondants et + substitues avant l'interprtation 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 dfinies ci-dessus :</p> + + <pre class="prettyprint lang-config">Require ip 10.2.16.0/24 +... +Require ip 192.54.172.0/24 192.54.148.0/24</pre> + + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="usage" id="usage">Utilisation</a></h2> <p>On dfinit une macro l'aide des blocs <code class="directive"><Macro></code> qui contiennent la portion de votre @@ -199,75 +268,6 @@ UndefMacro DirGroup</pre> </div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="directive-section"><h2><a name="macro" id="macro">Directive</a> <a name="Macro" id="Macro"><Macro></a></h2> -<table class="directive"> -<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dfinition d'une macro dans un fichier de configuration</td></tr> -<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code> -<Macro <var>nom</var> [<var>par1</var> .. <var>parN</var>]> -... </Macro></code></td></tr> -<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, rpertoire</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 dfinir une macro - dans un fichier de configuration Apache. Le premier argument est le nom - de la macro, et les arguments suivants sont les paramtres. Il - est de bon aloi de prfixer les noms des paramtres d'une macro - avec un caractre parmi '<code>$%@</code>', et d'viter d'en faire - de mme avec les noms de macros. - </p> - - <pre class="prettyprint lang-config"><Macro LocalAccessPolicy> - Require ip 10.2.16.0/24 -</Macro> - -<Macro RestrictedAccessPolicy $ipnumbers> - Require ip $ipnumbers -</Macro></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, rpertoire</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, rpertoire</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 considre est expanse. Son nombre d'arguments doit tre gal au - nombre de paramtres prciss dans sa dfinition. Les valeurs passes en - argument sont attribues aux paramtres correspondants et - substitues avant l'interprtation 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 dfinies 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"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_macro.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_mime.html.en b/docs/manual/mod/mod_mime.html.en index 5c593ab2f4..3604a1ad02 100644 --- a/docs/manual/mod/mod_mime.html.en +++ b/docs/manual/mod/mod_mime.html.en @@ -113,139 +113,6 @@ <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"><FilesMatch \.cgi$> - SetHandler cgi-script -</FilesMatch></pre> -</div> - -</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="contentencoding" id="contentencoding">Content encoding</a></h2> - <p>A file of a particular <a class="glossarylink" href="../glossary.html#media-type" title="see glossary">media-type</a> can additionally be encoded a - particular way to simplify transmission over the Internet. - While this usually will refer to compression, such as - <code>gzip</code>, it can also refer to encryption, such a - <code>pgp</code> or to an encoding such as UUencoding, which is - designed for transmitting a binary file in an ASCII (text) - format.</p> - - <p>The <a href="http://www.ietf.org/rfc/rfc2616.txt">HTTP/1.1 - RFC</a>, section 14.11 puts it this way:</p> - - <blockquote cite="http://www.ietf.org/rfc/rfc2616.txt"> - <p>The Content-Encoding entity-header field is used as a modifier to - the media-type. When present, its value indicates what additional - content codings have been applied to the entity-body, and thus what - decoding mechanisms must be applied in order to obtain the media-type - referenced by the Content-Type header field. Content-Encoding is - primarily used to allow a document to be compressed without losing - the identity of its underlying media type.</p> - </blockquote> - - <p>By using more than one file extension (see <a href="#multipleext">section above about multiple file - extensions</a>), you can indicate that a file is of a - particular <em>type</em>, and also has a particular - <em>encoding</em>. </p> - - <p>For example, you may have a file which is a Microsoft Word - document, which is pkzipped to reduce its size. If the - <code>.doc</code> extension is associated with the Microsoft - Word file type, and the <code>.zip</code> extension is - associated with the pkzip file encoding, then the file - <code>Resume.doc.zip</code> would be known to be a pkzip'ed Word - document.</p> - - <p>Apache sends a <code>Content-encoding</code> header with the - resource, in order to tell the client browser about the - encoding method.</p> - - <pre class="prettyprint lang-config">Content-encoding: pkzip</pre> - -</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="charset-lang" id="charset-lang">Character sets and languages</a></h2> - <p>In addition to file type and the file encoding, - another important piece of information is what language a - particular document is in, and in what character set the file - should be displayed. For example, the document might be written - in the Vietnamese alphabet, or in Cyrillic, and should be - displayed as such. This information, also, is transmitted in - HTTP headers.</p> - - <p>The character set, language, encoding and mime type are all - used in the process of content negotiation (See - <code class="module"><a href="../mod/mod_negotiation.html">mod_negotiation</a></code>) to determine - which document to give to the client, when there are - alternative documents in more than one character set, language, - encoding or mime type. All filename extensions associations - created with <code class="directive"><a href="#addcharset">AddCharset</a></code>, - <code class="directive"><a href="#addencoding">AddEncoding</a></code>, <code class="directive"><a href="#addlanguage">AddLanguage</a></code> and <code class="directive"><a href="#addtype">AddType</a></code> directives - (and extensions listed in the <code class="directive"><a href="../mod/mod_mime_magic.html#mimemagicfile">MimeMagicFile</a></code>) participate in this select process. - Filename extensions that are only associated using the <code class="directive"><a href="#addhandler">AddHandler</a></code>, <code class="directive"><a href="#addinputfilter">AddInputFilter</a></code> or <code class="directive"><a href="#addoutputfilter">AddOutputFilter</a></code> directives may be included or excluded - from matching by using the <code class="directive"><a href="#multiviewsmatch">MultiviewsMatch</a></code> directive.</p> - - <h3><a name="charset" id="charset">Charset</a></h3> - <p>To convey this further information, Apache optionally sends - a <code>Content-Language</code> header, to specify the language - that the document is in, and can append additional information - onto the <code>Content-Type</code> header to indicate the - particular character set that should be used to correctly - render the information.</p> - - <div class="example"><p><code> -Content-Language: en, fr -Content-Type: text/plain; charset=ISO-8859-1 - </code></p></div> - - <p>The language specification is the two-letter abbreviation - for the language. The <code>charset</code> is the name of the - particular character set which should be used.</p> - -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AddCharset" id="AddCharset">AddCharset</a> <a name="addcharset" id="addcharset">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maps the given filename extensions to the specified content @@ -1002,6 +869,139 @@ extensions</td></tr> <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"><FilesMatch \.cgi$> + SetHandler cgi-script +</FilesMatch></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"> <p><span>Available Languages: </span><a href="../en/mod/mod_mime.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_mime.html.ja.utf8 b/docs/manual/mod/mod_mime.html.ja.utf8 index 4c0dfba0b0..f24ea9da2a 100644 --- a/docs/manual/mod/mod_mime.html.ja.utf8 +++ b/docs/manual/mod/mod_mime.html.ja.utf8 @@ -122,135 +122,6 @@ <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> - <FilesMatch \.cgi$> - <span class="indent"> - SetHandler cgi-script - </span> - </FilesMatch> - </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> @@ -976,6 +847,135 @@ <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> + <FilesMatch \.cgi$> + <span class="indent"> + SetHandler cgi-script + </span> + </FilesMatch> + </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"> <p><span>翻訳済み言語: </span><a href="../en/mod/mod_mime.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_mime_magic.html.en b/docs/manual/mod/mod_mime_magic.html.en index 832b1444ef..fa53b6a44d 100644 --- a/docs/manual/mod/mod_mime_magic.html.en +++ b/docs/manual/mod/mod_mime_magic.html.en @@ -56,6 +56,28 @@ <li><img alt="" src="../images/down.gif" /> <a href="#notes">Notes</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="MimeMagicFile" id="MimeMagicFile">MimeMagicFile</a> <a name="mimemagicfile" id="mimemagicfile">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enable MIME-type determination based on file contents +using the specified magic file</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>MimeMagicFile <var>file-path</var></code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_mime_magic</td></tr> +</table> + <p>The <code class="directive">MimeMagicFile</code> directive can be used to + enable this module, the default file is distributed at + <code>conf/magic</code>. Non-rooted paths are relative to the + <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>. Virtual hosts will use + the same file as the main server unless a more specific setting is + used, in which case the more specific setting overrides the main + server's file.</p> + + <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">MimeMagicFile conf/magic</pre> +</div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="format" id="format">Format of the Magic File</a></h2> @@ -246,28 +268,6 @@ </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"> <p><span>Available Languages: </span><a href="../en/mod/mod_mime_magic.html" title="English"> en </a></p> diff --git a/docs/manual/mod/mod_negotiation.html.en b/docs/manual/mod/mod_negotiation.html.en index 6af381a5e9..41517c7b48 100644 --- a/docs/manual/mod/mod_negotiation.html.en +++ b/docs/manual/mod/mod_negotiation.html.en @@ -69,6 +69,118 @@ Negotiation</a></li> <li><a href="../env.html">Environment Variables</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="CacheNegotiatedDocs" id="CacheNegotiatedDocs">CacheNegotiatedDocs</a> <a name="cachenegotiateddocs" id="cachenegotiateddocs">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Allows content-negotiated documents to be +cached by proxy servers</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheNegotiatedDocs On|Off</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheNegotiatedDocs Off</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_negotiation</td></tr> +</table> + <p>If set, this directive allows content-negotiated documents + to be cached by proxy servers. This could mean that clients + behind those proxys could retrieve versions of the documents + that are not the best match for their abilities, but it will + make caching more efficient.</p> + + <p>This directive only applies to requests which come from + HTTP/1.0 browsers. HTTP/1.1 provides much better control over + the caching of negotiated documents, and this directive has no + effect in responses to HTTP/1.1 requests.</p> + + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ForceLanguagePriority" id="ForceLanguagePriority">ForceLanguagePriority</a> <a name="forcelanguagepriority" id="forcelanguagepriority">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Action to take if a single acceptable document is not +found</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback]</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ForceLanguagePriority Prefer</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_negotiation</td></tr> +</table> + <p>The <code class="directive">ForceLanguagePriority</code> directive uses + the given <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> to satisfy + negotiation where the server could otherwise not return a single + matching document.</p> + + <p><code>ForceLanguagePriority Prefer</code> uses + <code>LanguagePriority</code> to serve a one valid result, rather + than returning an HTTP result 300 (MULTIPLE CHOICES) when there + are several equally valid choices. If the directives below were + given, and the user's <code>Accept-Language</code> header assigned + <code>en</code> and <code>de</code> each as quality <code>.500</code> + (equally acceptable) then the first matching variant, <code>en</code>, + will be served.</p> + + <pre class="prettyprint lang-config">LanguagePriority en fr de +ForceLanguagePriority Prefer</pre> + + + <p><code>ForceLanguagePriority Fallback</code> uses + <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> to + serve a valid result, rather than returning an HTTP result 406 + (NOT ACCEPTABLE). If the directives below were given, and the user's + <code>Accept-Language</code> only permitted an <code>es</code> + language response, but such a variant isn't found, then the first + variant from the <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> list below will be served.</p> + + <pre class="prettyprint lang-config">LanguagePriority en fr de +ForceLanguagePriority Fallback</pre> + + + <p>Both options, <code>Prefer</code> and <code>Fallback</code>, may be + specified, so either the first matching variant from <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> will be served if + more than one variant is acceptable, or first available document will + be served if none of the variants matched the client's acceptable list + of languages.</p> + +<h3>See also</h3> +<ul> +<li><code class="directive"><a href="../mod/mod_mime.html#addlanguage">AddLanguage</a></code></li> +</ul> +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="LanguagePriority" id="LanguagePriority">LanguagePriority</a> <a name="languagepriority" id="languagepriority">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The precendence of language variants for cases where +the client does not express a preference</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LanguagePriority <var>MIME-lang</var> [<var>MIME-lang</var>] +...</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_negotiation</td></tr> +</table> + <p>The <code class="directive">LanguagePriority</code> sets the precedence + of language variants for the case where the client does not + express a preference, when handling a Multiviews request. The list + of <var>MIME-lang</var> are in order of decreasing preference.</p> + + <pre class="prettyprint lang-config">LanguagePriority en fr de</pre> + + + <p>For a request for <code>foo.html</code>, where + <code>foo.html.fr</code> and <code>foo.html.de</code> both + existed, but the browser did not express a language preference, + then <code>foo.html.fr</code> would be returned.</p> + + <p>Note that this directive only has an effect if a 'best' + language cannot be determined by any other means or the <code class="directive"><a href="#forcelanguagepriority">ForceLanguagePriority</a></code> directive + is not <code>None</code>. In general, the client determines the + language preference, not the server.</p> + +<h3>See also</h3> +<ul> +<li><code class="directive"><a href="../mod/mod_mime.html#addlanguage">AddLanguage</a></code></li> +</ul> +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="typemaps" id="typemaps">Type maps</a></h2> <p>A type map has a format similar to RFC822 mail headers. It @@ -226,118 +338,6 @@ Negotiation</a></li> that do not have content negotiation meta-information assigned to them when choosing files.</p> </div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="directive-section"><h2><a name="CacheNegotiatedDocs" id="CacheNegotiatedDocs">CacheNegotiatedDocs</a> <a name="cachenegotiateddocs" id="cachenegotiateddocs">Directive</a></h2> -<table class="directive"> -<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Allows content-negotiated documents to be -cached by proxy servers</td></tr> -<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheNegotiatedDocs On|Off</code></td></tr> -<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheNegotiatedDocs Off</code></td></tr> -<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> -<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> -<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_negotiation</td></tr> -</table> - <p>If set, this directive allows content-negotiated documents - to be cached by proxy servers. This could mean that clients - behind those proxys could retrieve versions of the documents - that are not the best match for their abilities, but it will - make caching more efficient.</p> - - <p>This directive only applies to requests which come from - HTTP/1.0 browsers. HTTP/1.1 provides much better control over - the caching of negotiated documents, and this directive has no - effect in responses to HTTP/1.1 requests.</p> - - -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="directive-section"><h2><a name="ForceLanguagePriority" id="ForceLanguagePriority">ForceLanguagePriority</a> <a name="forcelanguagepriority" id="forcelanguagepriority">Directive</a></h2> -<table class="directive"> -<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Action to take if a single acceptable document is not -found</td></tr> -<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback]</code></td></tr> -<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ForceLanguagePriority Prefer</code></td></tr> -<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr> -<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr> -<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> -<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_negotiation</td></tr> -</table> - <p>The <code class="directive">ForceLanguagePriority</code> directive uses - the given <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> to satisfy - negotiation where the server could otherwise not return a single - matching document.</p> - - <p><code>ForceLanguagePriority Prefer</code> uses - <code>LanguagePriority</code> to serve a one valid result, rather - than returning an HTTP result 300 (MULTIPLE CHOICES) when there - are several equally valid choices. If the directives below were - given, and the user's <code>Accept-Language</code> header assigned - <code>en</code> and <code>de</code> each as quality <code>.500</code> - (equally acceptable) then the first matching variant, <code>en</code>, - will be served.</p> - - <pre class="prettyprint lang-config">LanguagePriority en fr de -ForceLanguagePriority Prefer</pre> - - - <p><code>ForceLanguagePriority Fallback</code> uses - <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> to - serve a valid result, rather than returning an HTTP result 406 - (NOT ACCEPTABLE). If the directives below were given, and the user's - <code>Accept-Language</code> only permitted an <code>es</code> - language response, but such a variant isn't found, then the first - variant from the <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> list below will be served.</p> - - <pre class="prettyprint lang-config">LanguagePriority en fr de -ForceLanguagePriority Fallback</pre> - - - <p>Both options, <code>Prefer</code> and <code>Fallback</code>, may be - specified, so either the first matching variant from <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> will be served if - more than one variant is acceptable, or first available document will - be served if none of the variants matched the client's acceptable list - of languages.</p> - -<h3>See also</h3> -<ul> -<li><code class="directive"><a href="../mod/mod_mime.html#addlanguage">AddLanguage</a></code></li> -</ul> -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="directive-section"><h2><a name="LanguagePriority" id="LanguagePriority">LanguagePriority</a> <a name="languagepriority" id="languagepriority">Directive</a></h2> -<table class="directive"> -<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The precendence of language variants for cases where -the client does not express a preference</td></tr> -<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LanguagePriority <var>MIME-lang</var> [<var>MIME-lang</var>] -...</code></td></tr> -<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr> -<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr> -<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> -<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_negotiation</td></tr> -</table> - <p>The <code class="directive">LanguagePriority</code> sets the precedence - of language variants for the case where the client does not - express a preference, when handling a Multiviews request. The list - of <var>MIME-lang</var> are in order of decreasing preference.</p> - - <pre class="prettyprint lang-config">LanguagePriority en fr de</pre> - - - <p>For a request for <code>foo.html</code>, where - <code>foo.html.fr</code> and <code>foo.html.de</code> both - existed, but the browser did not express a language preference, - then <code>foo.html.fr</code> would be returned.</p> - - <p>Note that this directive only has an effect if a 'best' - language cannot be determined by any other means or the <code class="directive"><a href="#forcelanguagepriority">ForceLanguagePriority</a></code> directive - is not <code>None</code>. In general, the client determines the - language preference, not the server.</p> - -<h3>See also</h3> -<ul> -<li><code class="directive"><a href="../mod/mod_mime.html#addlanguage">AddLanguage</a></code></li> -</ul> -</div> </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_negotiation.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_negotiation.html.fr b/docs/manual/mod/mod_negotiation.html.fr index cdaadd278f..0e525b808a 100644 --- a/docs/manual/mod/mod_negotiation.html.fr +++ b/docs/manual/mod/mod_negotiation.html.fr @@ -69,6 +69,128 @@ contenu</a></li> <li><a href="../env.html">Variables d'environnement</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="cachenegotiateddocs" id="cachenegotiateddocs">Directive</a> <a name="CacheNegotiatedDocs" id="CacheNegotiatedDocs">CacheNegotiatedDocs</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Permet la mise en cache au niveau des serveurs mandataires +des documents dont le contenu a t ngoci</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">Dfaut:</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 dfinie "on", cette directive permet la mise en + cache au niveau des serveurs mandataires des documents dont le + contenu a t ngoci. Le processus de mise en cache sera alors plus + efficace, mais des clients se trouvant derrire le mandataire + seront alors susceptibles de se voir servir des versions de + documents qui ne correspondent pas forcment leurs attentes.</p> + + <p>Cette directive ne s'applique qu'aux requtes en provenance de + navigateurs HTTP/1.0. HTTP/1.1 fournit un bien meilleur contrle de + la mise en cache des documents au contenu ngoci, et cette + directive n'a aucun effet sur les rponses aux requtes + 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">Dfaut:</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, rpertoire, .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 dfini par la directive <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> pour terminer + la ngociation 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 rsultat d'un choix + unique, au lieu de renvoyer un rsultat HTTP 300 (MULTIPLE CHOICES), + lorsque que plusieurs choix quivalents sont disponibles. Par + exemple, avec les deux directives ci-dessous, si l'en-tte + <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 + premire 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 rsultat valide, au lieu de renvoyer un rsultat HTTP + 406 (NOT ACCEPTABLE). Avec les deux directives ci-dessous, si + l'en-tte <code>Accept-Language</code> de l'utilisateur ne mentionne + que les rponses de langage <code>es</code>, et si aucune variante + dans cette langue n'est trouve, c'est la premire variante de la + liste dfinie 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 spcifies, de faon ce que la variante servie soit + la premire variante qui convient dfinie 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 prfrences</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, rpertoire, .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 + dfinir, au cours du traitement d'une requte Multivues, l'ordre de + priorit des variantes de langages pour les cas + o le client n'a pas formul de prfrences. La liste numre les + <var>langages-MIME</var> dans un ordre de prfrences + dcroissantes.</p> + + <pre class="prettyprint lang-config">LanguagePriority en fr de</pre> + + + <p>Dans le cas d'une requte 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 prfrences, 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 dtermin d'une autre manire ou si la + valeur de la directive <code class="directive"><a href="#forcelanguagepriority">ForceLanguagePriority</a></code> est + diffrente de <code>None</code>. En gnral, c'est le client qui + dtermine le langage prfr, 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 possde un format similaire @@ -232,128 +354,6 @@ contenu</a></li> prendre en compte les fichiers qui ne comportent pas de mtadonnes de ngociation 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 ngoci</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">Dfaut:</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 dfinie "on", cette directive permet la mise en - cache au niveau des serveurs mandataires des documents dont le - contenu a t ngoci. Le processus de mise en cache sera alors plus - efficace, mais des clients se trouvant derrire le mandataire - seront alors susceptibles de se voir servir des versions de - documents qui ne correspondent pas forcment leurs attentes.</p> - - <p>Cette directive ne s'applique qu'aux requtes en provenance de - navigateurs HTTP/1.0. HTTP/1.1 fournit un bien meilleur contrle de - la mise en cache des documents au contenu ngoci, et cette - directive n'a aucun effet sur les rponses aux requtes - 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">Dfaut:</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, rpertoire, .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 dfini par la directive <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> pour terminer - la ngociation 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 rsultat d'un choix - unique, au lieu de renvoyer un rsultat HTTP 300 (MULTIPLE CHOICES), - lorsque que plusieurs choix quivalents sont disponibles. Par - exemple, avec les deux directives ci-dessous, si l'en-tte - <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 - premire 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 rsultat valide, au lieu de renvoyer un rsultat HTTP - 406 (NOT ACCEPTABLE). Avec les deux directives ci-dessous, si - l'en-tte <code>Accept-Language</code> de l'utilisateur ne mentionne - que les rponses de langage <code>es</code>, et si aucune variante - dans cette langue n'est trouve, c'est la premire variante de la - liste dfinie 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 spcifies, de faon ce que la variante servie soit - la premire variante qui convient dfinie 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 prfrences</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, rpertoire, .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 - dfinir, au cours du traitement d'une requte Multivues, l'ordre de - priorit des variantes de langages pour les cas - o le client n'a pas formul de prfrences. La liste numre les - <var>langages-MIME</var> dans un ordre de prfrences - dcroissantes.</p> - - <pre class="prettyprint lang-config">LanguagePriority en fr de</pre> - - - <p>Dans le cas d'une requte 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 prfrences, 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 dtermin d'une autre manire ou si la - valeur de la directive <code class="directive"><a href="#forcelanguagepriority">ForceLanguagePriority</a></code> est - diffrente de <code>None</code>. En gnral, c'est le client qui - dtermine le langage prfr, 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"> en </a> | diff --git a/docs/manual/mod/mod_negotiation.html.ja.utf8 b/docs/manual/mod/mod_negotiation.html.ja.utf8 index 8d98545499..db62196e93 100644 --- a/docs/manual/mod/mod_negotiation.html.ja.utf8 +++ b/docs/manual/mod/mod_negotiation.html.ja.utf8 @@ -71,114 +71,6 @@ <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 /> - <html><br /> - <body><br /> - <p>Content of the page.</p><br /> - </body><br /> - </html><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>コンテントネゴシエーションされたドキュメントをプロキシサーバが @@ -298,6 +190,114 @@ <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 /> + <html><br /> + <body><br /> + <p>Content of the page.</p><br /> + </body><br /> + </html><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"> en </a> | diff --git a/docs/manual/mod/mod_nw_ssl.html.en b/docs/manual/mod/mod_nw_ssl.html.en index 5a6b211e8b..b106491c19 100644 --- a/docs/manual/mod/mod_nw_ssl.html.en +++ b/docs/manual/mod/mod_nw_ssl.html.en @@ -44,7 +44,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#securelisten">SecureListen</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="NWSSLTrustedCerts" id="NWSSLTrustedCerts">NWSSLTrustedCerts</a> <a name="nwssltrustedcerts" id="nwssltrustedcerts">Directive</a></h2> <table class="directive"> @@ -91,6 +90,7 @@ parameter also enables mutual authentication.</p> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_nw_ssl.html" title="English"> en </a></p> diff --git a/docs/manual/mod/mod_policy.html.en b/docs/manual/mod/mod_policy.html.en index b37a8dd3ed..ee6996b8f3 100644 --- a/docs/manual/mod/mod_policy.html.en +++ b/docs/manual/mod/mod_policy.html.en @@ -86,188 +86,6 @@ <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"><Location /> - 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 -</Location> - -# suppress policy protection for server-status -<Location /server-status> - PolicyFilter off -</Location></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> @@ -657,6 +475,188 @@ later.</td></tr> 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"><Location /> + 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 +</Location> + +# suppress policy protection for server-status +<Location /server-status> + PolicyFilter off +</Location></pre> + + +</div> </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_policy.html" title="English"> en </a></p> diff --git a/docs/manual/mod/mod_privileges.html.en b/docs/manual/mod/mod_privileges.html.en index 9f653a54b1..251bffac57 100644 --- a/docs/manual/mod/mod_privileges.html.en +++ b/docs/manual/mod/mod_privileges.html.en @@ -76,65 +76,6 @@ separation is an issue.</p> <li><img alt="" src="../images/down.gif" /> <a href="#security">Security Considerations</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="security" id="security">Security Considerations</a></h2> - -<p><code class="module"><a href="../mod/mod_privileges.html">mod_privileges</a></code> introduces new security concerns -in situations where <strong>untrusted code</strong> may be run -<strong>within the webserver process</strong>. This applies to -untrusted modules, and scripts running under modules such as -mod_php or mod_perl. Scripts running externally (e.g. as CGI -or in an appserver behind mod_proxy or mod_jk) are NOT affected.</p> - -<p>The basic security concerns with mod_privileges are:</p> -<ul><li>Running as a system user introduces the same security issues - as mod_suexec, and near-equivalents such as cgiwrap and suphp.</li> -<li>A privileges-aware malicious user extension (module or script) - could escalate its privileges to anything available to the - httpd process in any virtual host. This introduces new risks - if (and only if) mod_privileges is compiled with the - <var>BIG_SECURITY_HOLE</var> option.</li> -<li>A privileges-aware malicious user extension (module or script) - could escalate privileges to set its user ID to another system - user (and/or group).</li> -</ul> - -<p>The <code class="directive">PrivilegesMode</code> directive allows you to -select either <var>FAST</var> or <var>SECURE</var> mode. You can -mix modes, using <var>FAST</var> mode for trusted users and -fully-audited code paths, while imposing SECURE mode where an -untrusted user has scope to introduce code.</p> -<p>Before describing the modes, we should also introduce the target -use cases: Benign vs Hostile. In a benign situation, you want to -separate users for their convenience, and protect them and the server -against the risks posed by honest mistakes, but you trust your users -are not deliberately subverting system security. In a hostile -situation - e.g. commercial hosting - you may have users deliberately -attacking the system or each other.</p> -<dl> -<dt>FAST mode</dt> -<dd>In <var>FAST</var> mode, requests are run in-process with the -selected uid/gid and privileges, so the overhead is negligible. -This is suitable for benign situations, but is not secure against an -attacker escalating privileges with an in-process module or script.</dd> -<dt>SECURE mode</dt> -<dd>A request in <var>SECURE</var> mode forks a subprocess, which -then drops privileges. This is a very similar case to running CGI -with suexec, but for the entire request cycle, and with the benefit -of fine-grained control of privileges.</dd> -</dl> -<p>You can select different <code class="directive">PrivilegesMode</code>s for -each virtual host, and even in a directory context within a virtual -host. <var>FAST</var> mode is appropriate where the user(s) are -trusted and/or have no privilege to load in-process code. -<var>SECURE</var> mode is appropriate to cases where untrusted code -might be run in-process. However, even in <var>SECURE</var> mode, -there is no protection against a malicious user who is able to -introduce privileges-aware code running <em>before the start of the -request-processing cycle.</em></p> - -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="DTracePrivileges" id="DTracePrivileges">DTracePrivileges</a> <a name="dtraceprivileges" id="dtraceprivileges">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Determines whether the privileges required by dtrace are enabled.</td></tr> @@ -391,6 +332,65 @@ non-threaded MPMs (<code class="module"><a href="../mod/prefork.html">prefork</a <li><code class="directive"><a href="../mod/mod_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"> <p><span>Available Languages: </span><a href="../en/mod/mod_privileges.html" title="English"> en </a></p> diff --git a/docs/manual/mod/mod_proxy.html.en b/docs/manual/mod/mod_proxy.html.en index 963cbcbe3d..c53f6c1b67 100644 --- a/docs/manual/mod/mod_proxy.html.en +++ b/docs/manual/mod/mod_proxy.html.en @@ -145,340 +145,6 @@ <li><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="forwardreverse" id="forwardreverse">Forward Proxies and Reverse - Proxies/Gateways</a></h2> - <p>Apache HTTP Server can be configured in both a <dfn>forward</dfn> and - <dfn>reverse</dfn> proxy (also known as <dfn>gateway</dfn>) mode.</p> - - <p>An ordinary <dfn>forward proxy</dfn> is an intermediate - server that sits between the client and the <em>origin - server</em>. In order to get content from the origin server, - the client sends a request to the proxy naming the origin server - as the target and the proxy then requests the content from the - origin server and returns it to the client. The client must be - specially configured to use the forward proxy to access other - sites.</p> - - <p>A typical usage of a forward proxy is to provide Internet - access to internal clients that are otherwise restricted by a - firewall. The forward proxy can also use caching (as provided - by <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>) to reduce network usage.</p> - - <p>The forward proxy is activated using the <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> directive. Because - forward proxies allow clients to access arbitrary sites through - your server and to hide their true origin, it is essential that - you <a href="#access">secure your server</a> so that only - authorized clients can access the proxy before activating a - forward proxy.</p> - - <p>A <dfn>reverse proxy</dfn> (or <dfn>gateway</dfn>), by - contrast, appears to the client just like an ordinary web - server. No special configuration on the client is necessary. - The client makes ordinary requests for content in the name-space - of the reverse proxy. The reverse proxy then decides where to - send those requests, and returns the content as if it was itself - the origin.</p> - - <p>A typical usage of a reverse proxy is to provide Internet - users access to a server that is behind a firewall. Reverse - proxies can also be used to balance load among several back-end - servers, or to provide caching for a slower back-end server. - In addition, reverse proxies can be used simply to bring - several servers into the same URL space.</p> - - <p>A reverse proxy is activated using the <code class="directive"><a href="#proxypass">ProxyPass</a></code> directive or the - <code>[P]</code> flag to the <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> directive. It is - <strong>not</strong> necessary to turn <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> on in order to - configure a reverse proxy.</p> - </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="examples" id="examples">Basic Examples</a></h2> - - <p>The examples below are only a very basic idea to help you - get started. Please read the documentation on the individual - directives.</p> - - <p>In addition, if you wish to have caching enabled, consult - the documentation from <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>.</p> - - <div class="example"><h3>Reverse Proxy</h3><pre class="prettyprint lang-config">ProxyPass /foo http://foo.example.com/bar -ProxyPassReverse /foo http://foo.example.com/bar</pre> -</div> - - <div class="example"><h3>Forward Proxy</h3><pre class="prettyprint lang-config">ProxyRequests On -ProxyVia On - -<Proxy *> - Require host internal.example.com -</Proxy></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>You can also force a request to be handled as a reverse-proxy - request, by creating a suitable Handler pass-through. The example - configuration below will pass all requests for PHP scripts to the - specified FastCGI server using reverse proxy: - </p> - - <div class="example"><h3>Reverse Proxy PHP scripts</h3><pre class="prettyprint lang-config"><FilesMatch \.php$> - SetHandler "proxy:unix:/path/to/app.sock|fcgi://localhost/" -</FilesMatch></pre> -</div> - - <p>This feature is available in Apache HTTP Server 2.4.10 and later.</p> - - </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="workers" id="workers">Workers</a></h2> - <p>The proxy manages the configuration of origin servers and their - communication parameters in objects called <dfn>workers</dfn>. - There are two built-in workers, the default forward proxy worker and the - default reverse proxy worker. Additional workers can be configured - explicitly.</p> - - <p>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>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>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>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"><Proxy http://backend.example.com> - ProxySet connectiontimeout=5 timeout=30 -</Proxy></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>The URL identifying a direct worker is the URL of its - origin server including any path components given:</p> - - <pre class="prettyprint lang-config">ProxyPass /examples http://backend.example.com/examples -ProxyPass /docs http://backend.example.com/docs</pre> - - - <p>This example defines two different workers, each using a separate - connection pool and configuration.</p> - - <div class="warning"><h3>Worker Sharing</h3> - <p>Worker sharing happens if the worker URLs overlap, which occurs when - the URL of some worker is a leading substring of the URL of another - worker defined later in the configuration file. In the following example</p> - - <pre class="prettyprint lang-config">ProxyPass /apps http://backend.example.com/ timeout=60 -ProxyPass /examples http://backend.example.com/examples timeout=10</pre> - - - <p>the second worker isn't actually created. Instead the first - worker is used. The benefit is, that there is only one connection pool, - so connections are more often reused. Note that all configuration attributes - given explicitly for the later worker will be ignored. This will be logged - as a warning. In the above example the resulting timeout value - for the URL <code>/examples</code> will be <code>60</code> instead - of <code>10</code>!</p> - - <p>If you want to avoid worker sharing, sort your worker definitions - by URL length, starting with the longest worker URLs. If you want to maximize - worker sharing use the reverse sort order. See also the related warning about - ordering <code class="directive"><a href="#proxypass">ProxyPass</a></code> directives.</p> - - </div> - - <p>Explicitly configured workers come in two flavors: - <dfn>direct workers</dfn> and <dfn>(load) balancer workers</dfn>. - They support many important configuration attributes which are - described below in the <code class="directive"><a href="#proxypass">ProxyPass</a></code> - directive. The same attributes can also be set using - <code class="directive"><a href="#proxyset">ProxySet</a></code>.</p> - - <p>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>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>A balancer worker is created if its worker URL uses - <code>balancer</code> as the protocol scheme. - The balancer URL uniquely identifies the balancer worker. - Members are added to a balancer using - <code class="directive"><a href="#balancermember">BalancerMember</a></code>.</p> - - </div><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"><Proxy></a></code> control block as in - the following example:</p> - - <pre class="prettyprint lang-config"><Proxy *> - Require ip 192.168.0 -</Proxy></pre> - - - <p>For more information on access control directives, see - <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code>.</p> - - <p>Strictly limiting access is essential if you are using a - forward proxy (using the <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> directive). - Otherwise, your server can be used by any client to access - arbitrary hosts while hiding his or her true identity. This is - dangerous both for your network and for the Internet at large. - When using a reverse proxy (using the <code class="directive"><a href="#proxypass">ProxyPass</a></code> directive with - <code>ProxyRequests Off</code>), access control is less - critical because clients can only contact the hosts that you - have specifically configured.</p> - - <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> - - <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"><Location /buggyappserver/> - ProxyPass http://buggyappserver:7001/foo/ - SetEnv force-proxy-request-1.0 1 - SetEnv proxy-nokeepalive 1 -</Location></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="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> @@ -1960,6 +1626,340 @@ header for proxied requests</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">Forward Proxies and Reverse + Proxies/Gateways</a></h2> + <p>Apache HTTP Server can be configured in both a <dfn>forward</dfn> and + <dfn>reverse</dfn> proxy (also known as <dfn>gateway</dfn>) mode.</p> + + <p>An ordinary <dfn>forward proxy</dfn> is an intermediate + server that sits between the client and the <em>origin + server</em>. In order to get content from the origin server, + the client sends a request to the proxy naming the origin server + as the target and the proxy then requests the content from the + origin server and returns it to the client. The client must be + specially configured to use the forward proxy to access other + sites.</p> + + <p>A typical usage of a forward proxy is to provide Internet + access to internal clients that are otherwise restricted by a + firewall. The forward proxy can also use caching (as provided + by <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>) to reduce network usage.</p> + + <p>The forward proxy is activated using the <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> directive. Because + forward proxies allow clients to access arbitrary sites through + your server and to hide their true origin, it is essential that + you <a href="#access">secure your server</a> so that only + authorized clients can access the proxy before activating a + forward proxy.</p> + + <p>A <dfn>reverse proxy</dfn> (or <dfn>gateway</dfn>), by + contrast, appears to the client just like an ordinary web + server. No special configuration on the client is necessary. + The client makes ordinary requests for content in the name-space + of the reverse proxy. The reverse proxy then decides where to + send those requests, and returns the content as if it was itself + the origin.</p> + + <p>A typical usage of a reverse proxy is to provide Internet + users access to a server that is behind a firewall. Reverse + proxies can also be used to balance load among several back-end + servers, or to provide caching for a slower back-end server. + In addition, reverse proxies can be used simply to bring + several servers into the same URL space.</p> + + <p>A reverse proxy is activated using the <code class="directive"><a href="#proxypass">ProxyPass</a></code> directive or the + <code>[P]</code> flag to the <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> directive. It is + <strong>not</strong> necessary to turn <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> on in order to + configure a reverse proxy.</p> + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="examples" id="examples">Basic Examples</a></h2> + + <p>The examples below are only a very basic idea to help you + get started. Please read the documentation on the individual + directives.</p> + + <p>In addition, if you wish to have caching enabled, consult + the documentation from <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>.</p> + + <div class="example"><h3>Reverse Proxy</h3><pre class="prettyprint lang-config">ProxyPass /foo http://foo.example.com/bar +ProxyPassReverse /foo http://foo.example.com/bar</pre> +</div> + + <div class="example"><h3>Forward Proxy</h3><pre class="prettyprint lang-config">ProxyRequests On +ProxyVia On + +<Proxy *> + Require host internal.example.com +</Proxy></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>You can also force a request to be handled as a reverse-proxy + request, by creating a suitable Handler pass-through. The example + configuration below will pass all requests for PHP scripts to the + specified FastCGI server using reverse proxy: + </p> + + <div class="example"><h3>Reverse Proxy PHP scripts</h3><pre class="prettyprint lang-config"><FilesMatch \.php$> + SetHandler "proxy:unix:/path/to/app.sock|fcgi://localhost/" +</FilesMatch></pre> +</div> + + <p>This feature is available in Apache HTTP Server 2.4.10 and later.</p> + + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="workers" id="workers">Workers</a></h2> + <p>The proxy manages the configuration of origin servers and their + communication parameters in objects called <dfn>workers</dfn>. + There are two built-in workers, the default forward proxy worker and the + default reverse proxy worker. Additional workers can be configured + explicitly.</p> + + <p>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>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>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>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"><Proxy http://backend.example.com> + ProxySet connectiontimeout=5 timeout=30 +</Proxy></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>The URL identifying a direct worker is the URL of its + origin server including any path components given:</p> + + <pre class="prettyprint lang-config">ProxyPass /examples http://backend.example.com/examples +ProxyPass /docs http://backend.example.com/docs</pre> + + + <p>This example defines two different workers, each using a separate + connection pool and configuration.</p> + + <div class="warning"><h3>Worker Sharing</h3> + <p>Worker sharing happens if the worker URLs overlap, which occurs when + the URL of some worker is a leading substring of the URL of another + worker defined later in the configuration file. In the following example</p> + + <pre class="prettyprint lang-config">ProxyPass /apps http://backend.example.com/ timeout=60 +ProxyPass /examples http://backend.example.com/examples timeout=10</pre> + + + <p>the second worker isn't actually created. Instead the first + worker is used. The benefit is, that there is only one connection pool, + so connections are more often reused. Note that all configuration attributes + given explicitly for the later worker will be ignored. This will be logged + as a warning. In the above example the resulting timeout value + for the URL <code>/examples</code> will be <code>60</code> instead + of <code>10</code>!</p> + + <p>If you want to avoid worker sharing, sort your worker definitions + by URL length, starting with the longest worker URLs. If you want to maximize + worker sharing use the reverse sort order. See also the related warning about + ordering <code class="directive"><a href="#proxypass">ProxyPass</a></code> directives.</p> + + </div> + + <p>Explicitly configured workers come in two flavors: + <dfn>direct workers</dfn> and <dfn>(load) balancer workers</dfn>. + They support many important configuration attributes which are + described below in the <code class="directive"><a href="#proxypass">ProxyPass</a></code> + directive. The same attributes can also be set using + <code class="directive"><a href="#proxyset">ProxySet</a></code>.</p> + + <p>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>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>A balancer worker is created if its worker URL uses + <code>balancer</code> as the protocol scheme. + The balancer URL uniquely identifies the balancer worker. + Members are added to a balancer using + <code class="directive"><a href="#balancermember">BalancerMember</a></code>.</p> + + </div><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"><Proxy></a></code> control block as in + the following example:</p> + + <pre class="prettyprint lang-config"><Proxy *> + Require ip 192.168.0 +</Proxy></pre> + + + <p>For more information on access control directives, see + <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code>.</p> + + <p>Strictly limiting access is essential if you are using a + forward proxy (using the <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> directive). + Otherwise, your server can be used by any client to access + arbitrary hosts while hiding his or her true identity. This is + dangerous both for your network and for the Internet at large. + When using a reverse proxy (using the <code class="directive"><a href="#proxypass">ProxyPass</a></code> directive with + <code>ProxyRequests Off</code>), access control is less + critical because clients can only contact the hosts that you + have specifically configured.</p> + + <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> + + <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"><Location /buggyappserver/> + ProxyPass http://buggyappserver:7001/foo/ + SetEnv force-proxy-request-1.0 1 + SetEnv proxy-nokeepalive 1 +</Location></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> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_proxy.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_proxy.html.fr b/docs/manual/mod/mod_proxy.html.fr index 32e106b0b7..d9a0793212 100644 --- a/docs/manual/mod/mod_proxy.html.fr +++ b/docs/manual/mod/mod_proxy.html.fr @@ -155,383 +155,6 @@ <li><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="forwardreverse" id="forwardreverse">Mandataires directs et - mandataires/passerelles inverses</a></h2> - <p>Le serveur HTTP Apache peut tre configur dans les deux modes mandataire - <dfn>direct</dfn> et mandataire <dfn>inverse</dfn> (aussi nomm - mode <dfn>passerelle</dfn>).</p> - - <p>Un <dfn>mandataire direct</dfn> standard est un serveur - intermdiaire qui s'intercale entre le client et le <em>serveur - demand</em>. Pour obtenir un contenu hberg par - le serveur demand, le client envoie une requte 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 manire approprie pour pouvoir utiliser le mandataire - direct afin d'accder d'autres sites.</p> - - <p>L'accs Internet depuis des clients situs derrire 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 rduire la charge du - rseau.</p> - - <p>La fonctionnalit de mandataire direct est active via la - directive <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code>. - Comme les mandataires directs permettent aux clients d'accder - des sites quelconques via votre serveur et de dissimuler leur - vritable origine, il est indispensable de <a href="#access">scuriser votre serveur</a> de faon ce que seuls - les clients autoriss puissent accder votre serveur avant - d'activer la fonctionnalit de mandataire direct.</p> - - <p>Un <dfn>mandataire inverse</dfn> (ou <dfn>passerelle</dfn>), - quant lui, apparat au client comme un serveur web standard. - Aucune configuration particulire du client n'est ncessaire. Le - client adresse ses demandes de contenus ordinaires dans l'espace - de nommage du mandataire inverse. Ce dernier dcide alors o - envoyer ces requtes, et renvoie le contenu au client comme s'il - l'hbergeait lui-mme.</p> - - <p>L'accs d'utilisateurs depuis Internet vers un serveur situ - derrire un pare-feu est une utilisation typique du mandataire - inverse. On peut aussi utiliser les mandataires inverses pour - mettre en oeuvre une rpartition de charge entre plusieurs - serveurs en arrire-plan, ou fournir un cache pour un serveur - d'arrire-plan plus lent. Les mandataires inverses peuvent aussi - tout simplement servir rassembler plusieurs serveurs dans le - mme espace de nommage d'URLs.</p> - - <p>La fonctionnalit de mandataire inverse est active 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> ncessaire de dfinir <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>Les exemples ci-dessous illustrent de manire trs basique la - mise en oeuvre de la fonctionnalit de mandataire et ne sont l que - pour vous aider dmarrer. Reportez-vous la documentation de - chaque directive.</p> - - <p>Si en outre, vous dsirez activer la mise en cache, consultez la - documentation de <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>.</p> - - <div class="example"><h3>Mandataire inverse</h3><pre class="prettyprint lang-config">ProxyPass /foo http://foo.example.com/bar -ProxyPassReverse /foo http://foo.example.com/bar</pre> -</div> - - <div class="example"><h3>Mandataire direct</h3><pre class="prettyprint lang-config">ProxyRequests On -ProxyVia On - -<Proxy *> - Require host internal.example.com -</Proxy></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">Accs via un gestionnaire</a></h2> - - <p>Vous pouvez aussi forcer le traitement d'une requte en tant que - requte de mandataire inverse en crant un gestionnaire de transfert - appropri. Dans l'exemple suivant, toutes les requtes pour - des scripts PHP seront transmises au serveur FastCGI - spcifi via un mandat inverse : - </p> - - <div class="example"><h3>Scripts PHP et mandataire inverse</h3><pre class="prettyprint lang-config"><FilesMatch \.php$> - SetHandler "proxy:unix:/path/to/app.sock|fcgi://localhost/" -</FilesMatch></pre> -</div> - - <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 gre la configuration et les paramtres de - communication des serveurs originaux au sein d'objets nomms - <dfn>workers</dfn>. Deux types de worker sont fournis : le worker - par dfaut du mandataire direct et le worker par dfaut du - mandataire inverse. Il est aussi possible de dfinir explicitement - des workers supplmentaires.</p> - - <p>Les deux workers par dfaut possdent une configuration fige - et seront utiliss si aucun autre worker ne correspond la - requte. 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 fermes et ouvertes - pour chaque requte.</p> - - <p>Les workers dfinis explicitement sont identifis par leur URL. - Ils sont en gnral dfinis via les directives <code class="directive"><a href="#proxypass">ProxyPass</a></code> ou <code class="directive"><a href="#proxypassmatch">ProxyPassMatch</a></code> lorsqu'on les - utilise dans le cadre d'un mandataire inverse :</p> - - <div class="example"><pre class="prettyprint lang-config">ProxyPass /example http://backend.example.com connectiontimeout=5 timeout=30</pre> -</div> - - - <p>Cette directive va crer un worker associ l'URL du serveur - original <code>http://backend.example.com</code>, et utilisant les - valeurs de timeout donnes. Lorsqu'ils sont utiliss dans le cadre - d'un mandataire direct, les workers sont en gnral dfinis 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>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"><Proxy http://backend.example.com> - ProxySet connectiontimeout=5 timeout=30 -</Proxy></pre> - - - <p>L'utilisation de workers dfinis explicitement dans le mode - mandataire direct n'est pas trs courante, car les mandataires - directs communiquent en gnral avec de nombreux serveurs - originaux. La cration explicite de workers pour certains serveurs - originaux peut cependant s'avrer utile si ces serveurs sont - trs souvent sollicits. A leur niveau, les workers explicitement - dfinis ne possdent 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>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> - - - <p>Dans cet exemple, deux workers diffrents sont dfinis, chacun - d'eux utilisant des configurations et jeux de connexions - spars.</p> - - <div class="warning"><h3>Partage de workers</h3> - <p>Le partage de workers intervient lorsque les URLs des workers - s'entrecoupent, ce qui arrive lorsque l'URL d'un worker - correspond au dbut de l'URL d'un autre worker dfini plus loin - dans le fichier de configuration. Dans l'exemple suivant,</p> - - <pre class="prettyprint lang-config">ProxyPass /apps http://backend.example.com/ timeout=60 -ProxyPass /examples http://backend.example.com/examples timeout=10</pre> - - - <p>le second worker n'est pas vraiment cr. C'est le premier - worker qui est en fait utilis. L'avantage de ceci rside dans - le fait qu'il n'existe qu'un seul jeu de connexions, ces - dernires tant donc rutilises plus souvent. Notez que tous - les attributs de configuration dfinis explicitement pour le - deuxime worker seront ignors, 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>Si vous voulez empcher le partage de workers, classez vos - dfinitions 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> - - <p>Les workers dfinis explicitement sont de deux sortes : - <dfn>workers directs</dfn> et <dfn>workers de rpartition (de - charge)</dfn>. Ils supportent de nombreux attributs de - configuration importants dcrits dans la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>. Ces mmes attributs - peuvent aussi tre dfinis via la directive <code class="directive"><a href="#proxyset">ProxySet</a></code>.</p> - - <p>Le jeu d'options disponibles pour un worker direct dpend du - protocole spcifi dans l'URL du serveur original. Les protocoles - disponibles comprennent <code>ajp</code>, <code>fcgi</code>, - <code>ftp</code>, <code>http</code> et <code>scgi</code>.</p> - - <p>Les workers de rpartition sont des workers virtuels qui - utilisent les workers directs, connus comme faisant partie de leurs - membres, pour le traitement effectif des requtes. Chaque - rpartiteur peut comporter plusieurs membres. Lorsqu'il traite une - requte, il choisit un de ses membres en fonction de l'algorithme - de rpartition de charge dfini.</p> - - <p>Un worker de rpartition est cr si son URL de worker comporte - <code>balancer</code> comme indicateur de protocole. L'URL du - rpartiteur permet d'identifier de manire unique le worker de - rpartition. La directive <code class="directive"><a href="#balancermember">BalancerMember</a></code> permet d'ajouter des - membres au rpartiteur.</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">Contrler l'accs votre - mandataire</a></h2> - <p>Vous pouvez restreindre l'accs votre mandataire via le bloc - de contrle <code class="directive"><a href="#proxy"><Proxy></a></code> comme dans - l'exemple suivant :</p> - - <pre class="prettyprint lang-config"><Proxy *> - Require ip 192.168.0 -</Proxy></pre> - - - <p>Pour plus de dtails sur les directives de contrle d'accs, - voir la documentation du module - <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code>.</p> - - <p>Restreindre l'accs de manire stricte est essentiel si vous - mettez en oeuvre un mandataire direct (en dfinissant 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 accder des serveurs quelconques, - tout en masquant sa vritable identit. Ceci reprsente un danger - non seulement pour votre rseau, 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 contrle - d'accs est moins critique car les clients ne peuvent contacter - que les serveurs que vous avez spcifis.</p> - - <p><strong>Voir aussi</strong> la variable d'environnement <a href="mod_proxy_http.html#env">Proxy-Chain-Auth</a>.</p> - - </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="startup" id="startup">Ralentissement au dmarrage</a></h2> - <p>Si vous utilisez la directive <code class="directive"><a href="#proxyblock">ProxyBlock</a></code>, les noms d'htes sont rsolus en adresses - IP puis ces dernires mises en cache au cours du dmarrage - des fins de tests de comparaisons ultrieurs. Ce processus peut - durer plusieurs secondes (ou d'avantage) en fonction de la vitesse - laquelle s'effectue la rsolution des noms d'htes.</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'intrieur d'un Intranet - doit faire suivre les requtes destines un serveur externe - travers le pare-feu de l'entreprise (pour ce faire, dfinissez la - directive <code class="directive"><a href="#proxyremote">ProxyRemote</a></code> de - faon ce qu'elle fasse suivre le <var>protocole</var> concern - vers le mandataire du pare-feu). Cependant, lorsqu'il doit accder - des ressources situes dans l'Intranet, il peut se passer du - pare-feu pour accder aux serveurs. A cet effet, la directive - <code class="directive"><a href="#noproxy">NoProxy</a></code> permet de - spcifier quels htes appartiennent l'Intranet et peuvent donc - tre accds directement.</p> - - <p>Les utilisateurs d'un Intranet ont tendance oublier le nom du - domaine local dans leurs requtes 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 requte 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 utilise et si le - serveur est <a href="#proxyrequests">configur comme - mandataire</a>, Apache httpd peut renvoyer une rponse de redirection et - ainsi fournir au client l'adresse de serveur correcte, - entirement qualifie. C'est la mthode privilgier car le - fichier des marque-pages de l'utilisateur contiendra alors des - noms de serveurs entirement qualifis.</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 requtes - vers un serveur qui n'implmente pas correctement les connexions - persistantes ou le protocole HTTP/1.1, il existe deux variables - d'environnement qui permettent de forcer les requtes utiliser - le protocole HTTP/1.0 avec connexions non persistantes. Elles - peuvent tre dfinies 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"><Location /buggyappserver/> - ProxyPass http://buggyappserver:7001/foo/ - SetEnv force-proxy-request-1.0 1 - SetEnv proxy-nokeepalive 1 -</Location></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 requtes</a></h2> - - <p>Certaines mthodes de requtes comme POST comportent un corps de - requte. Le protocole HTTP stipule que les requtes qui comportent - un corps doivent soit utiliser un codage de transmission - fractionne (chunked transfer encoding), soit envoyer un en-tte de requte - <code>Content-Length</code>. Lorsqu'il fait suivre ce genre de - requte 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-tte <code>Content-Length</code>. - Par contre, si la taille du corps est importante, et si la requte - originale utilise un codage fractionnement, ce dernier peut aussi - tre utilis dans la requte montante. Ce comportement peut tre - contrl l'aide de <a href="../env.html">variables - d'environnement</a>. Ainsi, si elle est dfinie, la variable - <code>proxy-sendcl</code> assure une compatibilit maximale avec les - serveurs demands en imposant l'envoi de l'en-tte - <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 requtes afin de satisfaire le - traitement demand des corps de requtes. Par exemple, cette mise en - file d'attente se produira si le corps original a t envoy selon un - codage morcel (et possde une taille importante), alors que - l'administrateur a demand que les requtes du serveur - d'arrire-plan soient envoyes avec l'en-tte Content-Length ou en - HTTP/1.0. Cette mise en file d'attente se produira aussi si le corps - de la requte contient dj un en-tte Content-Length, alors que le - serveur est configur pour filtrer les corps des requtes entrantes.</p> - - <p>La directive <code class="directive"><a href="../mod/core.html#limitrequestbody">LimitRequestBody</a></code> ne s'applique qu'aux - corps de requtes 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-ttes de requte 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-ttes de requte - afin de transmettre des informations au serveur demand. Ces - en-ttes 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'hte d'origine demand par le client dans l'en-tte de - requte HTTP <code>Host</code>.</dd> - <dt><code>X-Forwarded-Server</code></dt> - <dd>Le nom d'hte du serveur mandataire.</dd> - </dl> - - <p>Ces en-ttes doivent tre utiliss avec prcautions sur le - serveur demand, car ils contiendront plus d'une valeur (spares - par des virgules) si la requte originale contenait dj un de ces - en-ttes. Par exemple, vous pouvez utiliser - <code>%{X-Forwarded-For}i</code> dans la chane 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 requte 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 contrler d'autres en-ttes de requte.</p> - - <p>Note : Si vous devez ajouter des en-ttes particuliers la - requte mandate, 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="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 supplmentaires pouvant tre ajouts @@ -2221,6 +1844,383 @@ mandates</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">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>Un <dfn>mandataire direct</dfn> standard est un serveur + intermdiaire qui s'intercale entre le client et le <em>serveur + demand</em>. Pour obtenir un contenu hberg par + le serveur demand, le client envoie une requte 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 manire approprie pour pouvoir utiliser le mandataire + direct afin d'accder d'autres sites.</p> + + <p>L'accs Internet depuis des clients situs derrire 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 rduire la charge du + rseau.</p> + + <p>La fonctionnalit de mandataire direct est active via la + directive <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code>. + Comme les mandataires directs permettent aux clients d'accder + des sites quelconques via votre serveur et de dissimuler leur + vritable origine, il est indispensable de <a href="#access">scuriser votre serveur</a> de faon ce que seuls + les clients autoriss puissent accder votre serveur avant + d'activer la fonctionnalit de mandataire direct.</p> + + <p>Un <dfn>mandataire inverse</dfn> (ou <dfn>passerelle</dfn>), + quant lui, apparat au client comme un serveur web standard. + Aucune configuration particulire du client n'est ncessaire. Le + client adresse ses demandes de contenus ordinaires dans l'espace + de nommage du mandataire inverse. Ce dernier dcide alors o + envoyer ces requtes, et renvoie le contenu au client comme s'il + l'hbergeait lui-mme.</p> + + <p>L'accs d'utilisateurs depuis Internet vers un serveur situ + derrire un pare-feu est une utilisation typique du mandataire + inverse. On peut aussi utiliser les mandataires inverses pour + mettre en oeuvre une rpartition de charge entre plusieurs + serveurs en arrire-plan, ou fournir un cache pour un serveur + d'arrire-plan plus lent. Les mandataires inverses peuvent aussi + tout simplement servir rassembler plusieurs serveurs dans le + mme espace de nommage d'URLs.</p> + + <p>La fonctionnalit de mandataire inverse est active 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> ncessaire de dfinir <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>Les exemples ci-dessous illustrent de manire trs basique la + mise en oeuvre de la fonctionnalit de mandataire et ne sont l que + pour vous aider dmarrer. Reportez-vous la documentation de + chaque directive.</p> + + <p>Si en outre, vous dsirez activer la mise en cache, consultez la + documentation de <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>.</p> + + <div class="example"><h3>Mandataire inverse</h3><pre class="prettyprint lang-config">ProxyPass /foo http://foo.example.com/bar +ProxyPassReverse /foo http://foo.example.com/bar</pre> +</div> + + <div class="example"><h3>Mandataire direct</h3><pre class="prettyprint lang-config">ProxyRequests On +ProxyVia On + +<Proxy *> + Require host internal.example.com +</Proxy></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">Accs via un gestionnaire</a></h2> + + <p>Vous pouvez aussi forcer le traitement d'une requte en tant que + requte de mandataire inverse en crant un gestionnaire de transfert + appropri. Dans l'exemple suivant, toutes les requtes pour + des scripts PHP seront transmises au serveur FastCGI + spcifi via un mandat inverse : + </p> + + <div class="example"><h3>Scripts PHP et mandataire inverse</h3><pre class="prettyprint lang-config"><FilesMatch \.php$> + SetHandler "proxy:unix:/path/to/app.sock|fcgi://localhost/" +</FilesMatch></pre> +</div> + + <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 gre la configuration et les paramtres de + communication des serveurs originaux au sein d'objets nomms + <dfn>workers</dfn>. Deux types de worker sont fournis : le worker + par dfaut du mandataire direct et le worker par dfaut du + mandataire inverse. Il est aussi possible de dfinir explicitement + des workers supplmentaires.</p> + + <p>Les deux workers par dfaut possdent une configuration fige + et seront utiliss si aucun autre worker ne correspond la + requte. 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 fermes et ouvertes + pour chaque requte.</p> + + <p>Les workers dfinis explicitement sont identifis par leur URL. + Ils sont en gnral dfinis via les directives <code class="directive"><a href="#proxypass">ProxyPass</a></code> ou <code class="directive"><a href="#proxypassmatch">ProxyPassMatch</a></code> lorsqu'on les + utilise dans le cadre d'un mandataire inverse :</p> + + <div class="example"><pre class="prettyprint lang-config">ProxyPass /example http://backend.example.com connectiontimeout=5 timeout=30</pre> +</div> + + + <p>Cette directive va crer un worker associ l'URL du serveur + original <code>http://backend.example.com</code>, et utilisant les + valeurs de timeout donnes. Lorsqu'ils sont utiliss dans le cadre + d'un mandataire direct, les workers sont en gnral dfinis 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>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"><Proxy http://backend.example.com> + ProxySet connectiontimeout=5 timeout=30 +</Proxy></pre> + + + <p>L'utilisation de workers dfinis explicitement dans le mode + mandataire direct n'est pas trs courante, car les mandataires + directs communiquent en gnral avec de nombreux serveurs + originaux. La cration explicite de workers pour certains serveurs + originaux peut cependant s'avrer utile si ces serveurs sont + trs souvent sollicits. A leur niveau, les workers explicitement + dfinis ne possdent 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>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> + + + <p>Dans cet exemple, deux workers diffrents sont dfinis, chacun + d'eux utilisant des configurations et jeux de connexions + spars.</p> + + <div class="warning"><h3>Partage de workers</h3> + <p>Le partage de workers intervient lorsque les URLs des workers + s'entrecoupent, ce qui arrive lorsque l'URL d'un worker + correspond au dbut de l'URL d'un autre worker dfini plus loin + dans le fichier de configuration. Dans l'exemple suivant,</p> + + <pre class="prettyprint lang-config">ProxyPass /apps http://backend.example.com/ timeout=60 +ProxyPass /examples http://backend.example.com/examples timeout=10</pre> + + + <p>le second worker n'est pas vraiment cr. C'est le premier + worker qui est en fait utilis. L'avantage de ceci rside dans + le fait qu'il n'existe qu'un seul jeu de connexions, ces + dernires tant donc rutilises plus souvent. Notez que tous + les attributs de configuration dfinis explicitement pour le + deuxime worker seront ignors, 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>Si vous voulez empcher le partage de workers, classez vos + dfinitions 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> + + <p>Les workers dfinis explicitement sont de deux sortes : + <dfn>workers directs</dfn> et <dfn>workers de rpartition (de + charge)</dfn>. Ils supportent de nombreux attributs de + configuration importants dcrits dans la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>. Ces mmes attributs + peuvent aussi tre dfinis via la directive <code class="directive"><a href="#proxyset">ProxySet</a></code>.</p> + + <p>Le jeu d'options disponibles pour un worker direct dpend du + protocole spcifi dans l'URL du serveur original. Les protocoles + disponibles comprennent <code>ajp</code>, <code>fcgi</code>, + <code>ftp</code>, <code>http</code> et <code>scgi</code>.</p> + + <p>Les workers de rpartition sont des workers virtuels qui + utilisent les workers directs, connus comme faisant partie de leurs + membres, pour le traitement effectif des requtes. Chaque + rpartiteur peut comporter plusieurs membres. Lorsqu'il traite une + requte, il choisit un de ses membres en fonction de l'algorithme + de rpartition de charge dfini.</p> + + <p>Un worker de rpartition est cr si son URL de worker comporte + <code>balancer</code> comme indicateur de protocole. L'URL du + rpartiteur permet d'identifier de manire unique le worker de + rpartition. La directive <code class="directive"><a href="#balancermember">BalancerMember</a></code> permet d'ajouter des + membres au rpartiteur.</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">Contrler l'accs votre + mandataire</a></h2> + <p>Vous pouvez restreindre l'accs votre mandataire via le bloc + de contrle <code class="directive"><a href="#proxy"><Proxy></a></code> comme dans + l'exemple suivant :</p> + + <pre class="prettyprint lang-config"><Proxy *> + Require ip 192.168.0 +</Proxy></pre> + + + <p>Pour plus de dtails sur les directives de contrle d'accs, + voir la documentation du module + <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code>.</p> + + <p>Restreindre l'accs de manire stricte est essentiel si vous + mettez en oeuvre un mandataire direct (en dfinissant 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 accder des serveurs quelconques, + tout en masquant sa vritable identit. Ceci reprsente un danger + non seulement pour votre rseau, 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 contrle + d'accs est moins critique car les clients ne peuvent contacter + que les serveurs que vous avez spcifis.</p> + + <p><strong>Voir aussi</strong> la variable d'environnement <a href="mod_proxy_http.html#env">Proxy-Chain-Auth</a>.</p> + + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="startup" id="startup">Ralentissement au dmarrage</a></h2> + <p>Si vous utilisez la directive <code class="directive"><a href="#proxyblock">ProxyBlock</a></code>, les noms d'htes sont rsolus en adresses + IP puis ces dernires mises en cache au cours du dmarrage + des fins de tests de comparaisons ultrieurs. Ce processus peut + durer plusieurs secondes (ou d'avantage) en fonction de la vitesse + laquelle s'effectue la rsolution des noms d'htes.</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'intrieur d'un Intranet + doit faire suivre les requtes destines un serveur externe + travers le pare-feu de l'entreprise (pour ce faire, dfinissez la + directive <code class="directive"><a href="#proxyremote">ProxyRemote</a></code> de + faon ce qu'elle fasse suivre le <var>protocole</var> concern + vers le mandataire du pare-feu). Cependant, lorsqu'il doit accder + des ressources situes dans l'Intranet, il peut se passer du + pare-feu pour accder aux serveurs. A cet effet, la directive + <code class="directive"><a href="#noproxy">NoProxy</a></code> permet de + spcifier quels htes appartiennent l'Intranet et peuvent donc + tre accds directement.</p> + + <p>Les utilisateurs d'un Intranet ont tendance oublier le nom du + domaine local dans leurs requtes 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 requte 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 utilise et si le + serveur est <a href="#proxyrequests">configur comme + mandataire</a>, Apache httpd peut renvoyer une rponse de redirection et + ainsi fournir au client l'adresse de serveur correcte, + entirement qualifie. C'est la mthode privilgier car le + fichier des marque-pages de l'utilisateur contiendra alors des + noms de serveurs entirement qualifis.</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 requtes + vers un serveur qui n'implmente pas correctement les connexions + persistantes ou le protocole HTTP/1.1, il existe deux variables + d'environnement qui permettent de forcer les requtes utiliser + le protocole HTTP/1.0 avec connexions non persistantes. Elles + peuvent tre dfinies 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"><Location /buggyappserver/> + ProxyPass http://buggyappserver:7001/foo/ + SetEnv force-proxy-request-1.0 1 + SetEnv proxy-nokeepalive 1 +</Location></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 requtes</a></h2> + + <p>Certaines mthodes de requtes comme POST comportent un corps de + requte. Le protocole HTTP stipule que les requtes qui comportent + un corps doivent soit utiliser un codage de transmission + fractionne (chunked transfer encoding), soit envoyer un en-tte de requte + <code>Content-Length</code>. Lorsqu'il fait suivre ce genre de + requte 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-tte <code>Content-Length</code>. + Par contre, si la taille du corps est importante, et si la requte + originale utilise un codage fractionnement, ce dernier peut aussi + tre utilis dans la requte montante. Ce comportement peut tre + contrl l'aide de <a href="../env.html">variables + d'environnement</a>. Ainsi, si elle est dfinie, la variable + <code>proxy-sendcl</code> assure une compatibilit maximale avec les + serveurs demands en imposant l'envoi de l'en-tte + <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 requtes afin de satisfaire le + traitement demand des corps de requtes. Par exemple, cette mise en + file d'attente se produira si le corps original a t envoy selon un + codage morcel (et possde une taille importante), alors que + l'administrateur a demand que les requtes du serveur + d'arrire-plan soient envoyes avec l'en-tte Content-Length ou en + HTTP/1.0. Cette mise en file d'attente se produira aussi si le corps + de la requte contient dj un en-tte Content-Length, alors que le + serveur est configur pour filtrer les corps des requtes entrantes.</p> + + <p>La directive <code class="directive"><a href="../mod/core.html#limitrequestbody">LimitRequestBody</a></code> ne s'applique qu'aux + corps de requtes 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-ttes de requte 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-ttes de requte + afin de transmettre des informations au serveur demand. Ces + en-ttes 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'hte d'origine demand par le client dans l'en-tte de + requte HTTP <code>Host</code>.</dd> + <dt><code>X-Forwarded-Server</code></dt> + <dd>Le nom d'hte du serveur mandataire.</dd> + </dl> + + <p>Ces en-ttes doivent tre utiliss avec prcautions sur le + serveur demand, car ils contiendront plus d'une valeur (spares + par des virgules) si la requte originale contenait dj un de ces + en-ttes. Par exemple, vous pouvez utiliser + <code>%{X-Forwarded-For}i</code> dans la chane 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 requte 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 contrler d'autres en-ttes de requte.</p> + + <p>Note : Si vous devez ajouter des en-ttes particuliers la + requte mandate, utilisez la directive <code class="directive"><a href="../mod/mod_headers.html#requestheader">RequestHeader</a></code>.</p> + + </div> </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_proxy.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_proxy.html.ja.utf8 b/docs/manual/mod/mod_proxy.html.ja.utf8 index 64edc36708..a286172efc 100644 --- a/docs/manual/mod/mod_proxy.html.ja.utf8 +++ b/docs/manual/mod/mod_proxy.html.ja.utf8 @@ -121,195 +121,6 @@ <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 /> - <Proxy *><br /> - <span class="indent"> - Order deny,allow<br /> - Deny from all<br /> - Allow from internal.example.com<br /> - </span> - </Proxy> - </code></p></div> - - <div class="example"><h3>リバースプロキシ</h3><p><code> - ProxyRequests Off<br /> - <br /> - <Proxy *><br /> - <span class="indent"> - Order deny,allow<br /> - Allow from all<br /> - </span> - </Proxy><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"><Proxy></a></code> コンテナの中に - ディレクティブを書くことで制御できます:</p> - - <div class="example"><p><code> - <Proxy *><br /> - <span class="indent"> - Order Deny,Allow<br /> - Deny from all<br /> - Allow from 192.168.0<br /> - </span> - </Proxy> - </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> - <Location /buggyappserver/><br /> - <span class="indent"> - ProxyPass http://buggyappserver:7001/foo/<br /> - SetEnv force-proxy-request-1.0 1<br /> - SetEnv proxy-nokeepalive 1<br /> - </span> - </Location> - </code></p></div> - - </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="request-bodies" id="request-bodies">リクエストボディ</a></h2> - - <p>POST メソッドなどのリクエストには、リクエストボディがあります。 - HTTP プロトコル仕様によると、ボディのあるリクエストは chunked - 転送を使うか、<code>Content-Length</code> - ヘッダを送信しなければなりません。 - このようなリクエストをオリジンサーバに送信する場合、 - <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code> は常に <code>Content-Length</code> - を送ろうと試みます。しかし。ボディが大きく、オリジナルのリクエストで - chunked 転送が使われている場合、上流へのリクエストに - chunked 転送も使われます。 - この挙動は <a href="../env.html">環境変数</a>で制御できます。 - <code>proxy-sendcl</code> を設定すると、可能な限り常に - <code>Content-Length</code> を付与して、 - 上流サーバに送信するようになります。 - 逆に <code>proxy-sendchunked</code> を設定すると、リソース消費を抑え、 - chnked エンコードを使って送信するようになります。</p> - - </div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="BalancerGrowth" id="BalancerGrowth">BalancerGrowth</a> <a name="balancergrowth" id="balancergrowth">ディレクティブ</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Number of additional Balancers that can be added Post-configuration</td></tr> @@ -1240,6 +1051,195 @@ URL を調整する</td></tr> </ul> </div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="forwardreverse" id="forwardreverse">フォワードプロキシとリバースプロキシ</a></h2> + <p>Apache は<dfn>フォワード</dfn>プロキシとしても、 + <dfn>リバース</dfn>プロキシとしても設定することができます。</p> + + <p>通常の<dfn>フォワードプロキシ</dfn>はクライアントと + <em>オリジンサーバ</em> <span class="transnote">(<em>訳注:</em> コンテンツ生成元のサーバ)</span> + の間に位置する中間サーバです。 + オリジンサーバからコンテンツを取得する過程では、クライアントは + 行き先としてオリジンサーバを指定しつつプロキシにリクエストを送り、 + プロキシはオリジンサーバからコンテンツ取得のリクエストを送り、 + コンテンツが取得できればそれをクライアントに返します。 + クライアントが他のサイトにフォワードプロクシ経由でアクセスするには、 + 特別にそれ用の設定をしなければなりません。</p> + + <p>フォワードプロキシの一般的な使用方法は、ファイアウォールによって + 制限されている内部のクライアントにインターネットへのアクセスを + 提供するものです。フォワードプロキシはネットワークの使用量を + 減らすために (<code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> で提供されている) + キャッシュ機能を用いることもできます。</p> + + <p>フォワードプロキシは <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> ディレクティブで + 有効になります。フォワードプロキシでは、クライアントは本当の身元を + 隠して任意のサイトにアクセスできるようになるため、フォワードプロキシを + 有効にする前に、承認されたクライアントのみがプロキシにアクセスできるように + <a href="#access">サーバを安全にする</a>ことが重要です。</p> + + <p>一方<dfn>リバースプロキシ</dfn>は、クライアントには普通の + ウェブサーバのように見えます。クライアント側に特別な設定は必要ありません。 + クライアントはリバースプロキシの名前空間に対して通常のコンテンツへの + リクエストを行ないます。プロキシはリクエストをどこに送れば良いかを判定し、 + あたかも自分自身がオリジンサーバであったかのようにクライアントに + コンテンツを返します。</p> + + <p>リバースプロキシのよくある利用方法は、インターネットユーザに + ファイアウォールの中にあるサーバにアクセスを与えるというものです。 + リバースプロキシは複数のバックエンドサーバへ負荷分散をするために + 使ったり、遅いバックエンドエンドサーバのためにキャッシュ機能を提供したり + するために使えます。また、リバースプロキシは複数のサーバを + 同じ URL 空間にまとめるために使うこともできます。</p> + + <p>リバースプロキシは <code class="directive"><a href="#proxypass">ProxyPass</a></code> ディレクティブや + <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> ディレクティブの + <code>[P]</code> フラグを使うことで有効になります。リバースプロキシの + 設定のために <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> を設定する必要は + <em>ありません</em>。</p> + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="examples" id="examples">基本の例</a></h2> + + <p>以下の例は手始めの簡単な例です。個々のディレクティブの意味は + それぞれの説明をお読みください。</p> + + <p>またキャッシュ機能を有効にしたい場合は、<code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> + の説明を読んでください。</p> + + <div class="example"><h3>フォワードプロキシ</h3><p><code> + ProxyRequests On<br /> + ProxyVia On<br /> + <br /> + <Proxy *><br /> + <span class="indent"> + Order deny,allow<br /> + Deny from all<br /> + Allow from internal.example.com<br /> + </span> + </Proxy> + </code></p></div> + + <div class="example"><h3>リバースプロキシ</h3><p><code> + ProxyRequests Off<br /> + <br /> + <Proxy *><br /> + <span class="indent"> + Order deny,allow<br /> + Allow from all<br /> + </span> + </Proxy><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"><Proxy></a></code> コンテナの中に + ディレクティブを書くことで制御できます:</p> + + <div class="example"><p><code> + <Proxy *><br /> + <span class="indent"> + Order Deny,Allow<br /> + Deny from all<br /> + Allow from 192.168.0<br /> + </span> + </Proxy> + </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> + <Location /buggyappserver/><br /> + <span class="indent"> + ProxyPass http://buggyappserver:7001/foo/<br /> + SetEnv force-proxy-request-1.0 1<br /> + SetEnv proxy-nokeepalive 1<br /> + </span> + </Location> + </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"> en </a> | diff --git a/docs/manual/mod/mod_proxy_connect.html.en b/docs/manual/mod/mod_proxy_connect.html.en index ce2196eed4..5b27d78030 100644 --- a/docs/manual/mod/mod_proxy_connect.html.en +++ b/docs/manual/mod/mod_proxy_connect.html.en @@ -65,31 +65,6 @@ <li><code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="notes" id="notes">Request notes</a></h2> - <p><code class="module"><a href="../mod/mod_proxy_connect.html">mod_proxy_connect</a></code> creates the following request notes for - logging using the <code>%{VARNAME}n</code> format in - <code class="directive"><a href="../mod/mod_log_config.html#logformat">LogFormat</a></code> or - <code class="directive"><a href="../mod/core.html#errorlogformat">ErrorLogFormat</a></code>: - </p> - <dl> - <dt>proxy-source-port</dt> - <dd>The local port used for the connection to the backend server.</dd> - </dl> - - <p>CONNECT method requests are controlled by the - <code class="directive"><a href="../mod/mod_proxy.html#proxy">Proxy</a></code> block - as any other HTTP request going through. - SSL connections through a proxy may be filtered explicitely - by specifying the target host and port, for instance: - </p> - - <pre class="prettyprint lang-config"><Proxy www.example.com:443> - Require ip 192.168.0.0/16 -</Proxy></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 @@ -114,6 +89,31 @@ Port ranges available since Apache 2.3.7.</td></tr> allow connections to the listed ports only.</p> </div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="notes" id="notes">Request notes</a></h2> + <p><code class="module"><a href="../mod/mod_proxy_connect.html">mod_proxy_connect</a></code> creates the following request notes for + logging using the <code>%{VARNAME}n</code> format in + <code class="directive"><a href="../mod/mod_log_config.html#logformat">LogFormat</a></code> or + <code class="directive"><a href="../mod/core.html#errorlogformat">ErrorLogFormat</a></code>: + </p> + <dl> + <dt>proxy-source-port</dt> + <dd>The local port used for the connection to the backend server.</dd> + </dl> + + <p>CONNECT method requests are controlled by the + <code class="directive"><a href="../mod/mod_proxy.html#proxy">Proxy</a></code> block + as any other HTTP request going through. + SSL connections through a proxy may be filtered explicitely + by specifying the target host and port, for instance: + </p> + + <pre class="prettyprint lang-config"><Proxy www.example.com:443> + Require ip 192.168.0.0/16 +</Proxy></pre> + +</div> </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_proxy_connect.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_proxy_connect.html.ja.utf8 b/docs/manual/mod/mod_proxy_connect.html.ja.utf8 index fd4eb79487..9253bcd376 100644 --- a/docs/manual/mod/mod_proxy_connect.html.ja.utf8 +++ b/docs/manual/mod/mod_proxy_connect.html.ja.utf8 @@ -61,7 +61,6 @@ <ul class="seealso"> <li><code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></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"> @@ -88,6 +87,7 @@ <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"> en </a> | diff --git a/docs/manual/mod/mod_proxy_express.html.en b/docs/manual/mod/mod_proxy_express.html.en index 61f4c99528..31d8c8180b 100644 --- a/docs/manual/mod/mod_proxy_express.html.en +++ b/docs/manual/mod/mod_proxy_express.html.en @@ -86,7 +86,6 @@ <ul class="seealso"> <li><code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="ProxyExpressDBMFile" id="ProxyExpressDBMFile">ProxyExpressDBMFile</a> <a name="proxyexpressdbmfile" id="proxyexpressdbmfile">Directive</a></h2> <table class="directive"> @@ -170,6 +169,7 @@ 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"> en </a></p> diff --git a/docs/manual/mod/mod_proxy_ftp.html.en b/docs/manual/mod/mod_proxy_ftp.html.en index 87a4bdf7c1..469271cb1e 100644 --- a/docs/manual/mod/mod_proxy_ftp.html.en +++ b/docs/manual/mod/mod_proxy_ftp.html.en @@ -71,6 +71,63 @@ <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> @@ -174,63 +231,6 @@ 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"> en </a></p> diff --git a/docs/manual/mod/mod_proxy_html.html.en b/docs/manual/mod/mod_proxy_html.html.en index ec67a3fdaa..58de023d11 100644 --- a/docs/manual/mod/mod_proxy_html.html.en +++ b/docs/manual/mod/mod_proxy_html.html.en @@ -70,7 +70,6 @@ extensive <a href="http://apache.webthing.com/mod_proxy_html/">documentation</a> <li><img alt="" src="../images/down.gif" /> <a href="#proxyhtmlurlmap">ProxyHTMLURLMap</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="ProxyHTMLBufSize" id="ProxyHTMLBufSize">ProxyHTMLBufSize</a> <a name="proxyhtmlbufsize" id="proxyhtmlbufsize">Directive</a></h2> <table class="directive"> @@ -428,6 +427,7 @@ If TRUE, or if no condition is defined, the map is applied.</p> in mod_proxy_html 3.x for HTTPD 2.0 and 2.2 is also supported.</p> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_proxy_html.html" title="English"> en </a></p> diff --git a/docs/manual/mod/mod_proxy_scgi.html.en b/docs/manual/mod/mod_proxy_scgi.html.en index 1f9606a498..908a66d510 100644 --- a/docs/manual/mod/mod_proxy_scgi.html.en +++ b/docs/manual/mod/mod_proxy_scgi.html.en @@ -61,48 +61,6 @@ <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/ -<Proxy balancer://somecluster> - BalancerMember scgi://localhost:4000 - BalancerMember scgi://localhost:4001 -</Proxy></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 @@ -170,6 +128,48 @@ 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/ +<Proxy balancer://somecluster> + BalancerMember scgi://localhost:4000 + BalancerMember scgi://localhost:4001 +</Proxy></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"> <p><span>Available Languages: </span><a href="../en/mod/mod_proxy_scgi.html" title="English"> en </a></p> diff --git a/docs/manual/mod/mod_proxy_wstunnel.html.en b/docs/manual/mod/mod_proxy_wstunnel.html.en index dee214b41b..e7046becdb 100644 --- a/docs/manual/mod/mod_proxy_wstunnel.html.en +++ b/docs/manual/mod/mod_proxy_wstunnel.html.en @@ -58,7 +58,6 @@ 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"> @@ -107,6 +106,7 @@ 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"> en </a></p> diff --git a/docs/manual/mod/mod_reflector.html.en b/docs/manual/mod/mod_reflector.html.en index f78c6cf0f9..4f8afd501a 100644 --- a/docs/manual/mod/mod_reflector.html.en +++ b/docs/manual/mod/mod_reflector.html.en @@ -48,6 +48,22 @@ <li><img alt="" src="../images/down.gif" /> <a href="#examples">Examples</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ReflectorHeader" id="ReflectorHeader">ReflectorHeader</a> <a name="reflectorheader" id="reflectorheader">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Reflect an input header to the output headers</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ReflectorHeader <var>inputheader</var> <var>[outputheader]</var></code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Options</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_reflector</td></tr> +</table> + <p>This directive controls the reflection of request headers to the response. + The first argument is the name of the request header to copy. If the optional + second argument is specified, it will be used as the name of the response + header, otherwise the original request header name will be used.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="examples" id="examples">Examples</a></h2> <dl> @@ -73,22 +89,6 @@ </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"> en </a></p> diff --git a/docs/manual/mod/mod_remoteip.html.en b/docs/manual/mod/mod_remoteip.html.en index a574499c20..59452d7343 100644 --- a/docs/manual/mod/mod_remoteip.html.en +++ b/docs/manual/mod/mod_remoteip.html.en @@ -77,48 +77,6 @@ via the request headers. <li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="processing" id="processing">Remote IP Processing</a></h2> - - <p>Apache by default identifies the useragent with the connection's - client_ip value, and the connection remote_host and remote_logname are - derived from this value. These fields play a role in authentication, - authorization and logging and other purposes by other loadable - modules.</p> - - <p>mod_remoteip overrides the client IP of the connection with the - advertised useragent IP as provided by a proxy or load balancer, for - the duration of the request. A load balancer might establish a long - lived keepalive connection with the server, and each request will - have the correct useragent IP, even though the underlying client IP - address of the load balancer remains unchanged.</p> - - <p>When multiple, comma delimited useragent IP addresses are listed in the - header value, they are processed in Right-to-Left order. Processing - halts when a given useragent IP address is not trusted to present the - preceding IP address. The header field is updated to this remaining - list of unconfirmed IP addresses, or if all IP addresses were trusted, - this header is removed from the request altogether.</p> - - <p>In overriding the client IP, the module stores the list of intermediate - hosts in a remoteip-proxy-ip-list note, which <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code> - can record using the <code>%{remoteip-proxy-ip-list}n</code> format token. - If the administrator needs to store this as an additional header, this - same value can also be recording as a header using the directive - <code class="directive"><a href="#remoteipproxiesheader">RemoteIPProxiesHeader</a></code>.</p> - - <div class="note"><h3>IPv4-over-IPv6 Mapped Addresses</h3> - As with httpd in general, any IPv4-over-IPv6 mapped addresses are recorded - in their IPv4 representation.</div> - - <div class="note"><h3>Internal (Private) Addresses</h3> - All internal addresses 10/8, 172.16/12, 192.168/16, 169.254/16 and 127/8 - blocks (and IPv6 addresses outside of the public 2000::/3 block) are only - evaluated by mod_remoteip when <code class="directive"><a href="#remoteipinternalproxy">RemoteIPInternalProxy</a></code> - internal (intranet) proxies are registered.</div> - -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="RemoteIPHeader" id="RemoteIPHeader">RemoteIPHeader</a> <a name="remoteipheader" id="remoteipheader">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Declare the header field which should be parsed for useragent IP addresses</td></tr> @@ -265,6 +223,48 @@ RemoteIPTrustedProxyList conf/trusted-proxies.lst</pre> </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"> <p><span>Available Languages: </span><a href="../en/mod/mod_remoteip.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_remoteip.html.fr b/docs/manual/mod/mod_remoteip.html.fr index bb1195a47b..43733ea36f 100644 --- a/docs/manual/mod/mod_remoteip.html.fr +++ b/docs/manual/mod/mod_remoteip.html.fr @@ -83,53 +83,6 @@ rpartiteur de charge via les en-ttes de la requte. <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 dcoulent les valeurs remote_host et - remote_logname de la connexion. Ces champs jouent un rle - dans l'authentification, l'autorisation et la connexion, ainsi que - dans d'autres traitements effectus par d'autres modules - chargeables.</p> - - <p>mod_remoteip remplace la vritable remote_ip par la remote_ip - indique par exemple par un mandataire chaque fois que le serveur - effectue une valuation du client, et rinitialise les valeurs de - remote_host et remote_logname afin de dclencher une nouvelle - requte dns ou ident sur l'adresse IP distante.</p> - - <p>Lorsque la valeur de l'en-tte comporte plusieurs adresses IP - distantes spares par des virgules, celles-ci sont traites de la - droite vers la gauche. Le traitement s'arrte lorsque l'adresse IP - distante courante n'est pas digne de confiance pour prsenter - l'adresse IP prcdente. Le champ d'en-tte est alors mis jour de - faon ne contenir que cette liste d'adresses non confirmes, ou - bien, si toutes les adresses IP sont dignes de confiance, cet - en-tte est tout bonnement supprim de la requte.</p> - - <p>Lors du remplacement de l'adresse IP distante, le module stocke - la liste des htes intermdiaires dans un mmo - 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-tte additionnel, la mme valeur peut aussi - tre enregistre sous la forme d'un en-tte 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 manire gnrale, toute adresse IPv4 convertie au - format IPv6 est enregistre sous sa forme IPv4.</div> - - <div class="note"><h3>Adresses internes (prives)</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 values par mod_remoteip que lorsque - des mandataires internes (intranet) - <code class="directive"><a href="#remoteipinternalproxy">RemoteIPInternalProxy</a></code> sont enregistrs.</div> - -</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>Dfinit le champ d'en-tte qui contiendra les adresses IP @@ -306,6 +259,53 @@ RemoteIPTrustedProxyList conf/trusted-proxies.lst</pre> </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 dcoulent les valeurs remote_host et + remote_logname de la connexion. Ces champs jouent un rle + dans l'authentification, l'autorisation et la connexion, ainsi que + dans d'autres traitements effectus par d'autres modules + chargeables.</p> + + <p>mod_remoteip remplace la vritable remote_ip par la remote_ip + indique par exemple par un mandataire chaque fois que le serveur + effectue une valuation du client, et rinitialise les valeurs de + remote_host et remote_logname afin de dclencher une nouvelle + requte dns ou ident sur l'adresse IP distante.</p> + + <p>Lorsque la valeur de l'en-tte comporte plusieurs adresses IP + distantes spares par des virgules, celles-ci sont traites de la + droite vers la gauche. Le traitement s'arrte lorsque l'adresse IP + distante courante n'est pas digne de confiance pour prsenter + l'adresse IP prcdente. Le champ d'en-tte est alors mis jour de + faon ne contenir que cette liste d'adresses non confirmes, ou + bien, si toutes les adresses IP sont dignes de confiance, cet + en-tte est tout bonnement supprim de la requte.</p> + + <p>Lors du remplacement de l'adresse IP distante, le module stocke + la liste des htes intermdiaires dans un mmo + 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-tte additionnel, la mme valeur peut aussi + tre enregistre sous la forme d'un en-tte 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 manire gnrale, toute adresse IPv4 convertie au + format IPv6 est enregistre sous sa forme IPv4.</div> + + <div class="note"><h3>Adresses internes (prives)</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 values par mod_remoteip que lorsque + des mandataires internes (intranet) + <code class="directive"><a href="#remoteipinternalproxy">RemoteIPInternalProxy</a></code> sont enregistrs.</div> + +</div> </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_remoteip.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_reqtimeout.html.en b/docs/manual/mod/mod_reqtimeout.html.en index eaf2a4a7fa..175e930760 100644 --- a/docs/manual/mod/mod_reqtimeout.html.en +++ b/docs/manual/mod/mod_reqtimeout.html.en @@ -41,51 +41,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#examples">Examples</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="examples" id="examples">Examples</a></h2> - - <ol> - <li> - Allow 10 seconds to receive the request including the headers and - 30 seconds for receiving the request body: - - <pre class="prettyprint lang-config">RequestReadTimeout header=10 body=30</pre> - - </li> - - <li> - Allow at least 10 seconds to receive the request body. - If the client sends data, increase the timeout by 1 second for every - 1000 bytes received, with no upper limit for the timeout (except for - the limit given indirectly by - <code class="directive"><a href="../mod/core.html#limitrequestbody">LimitRequestBody</a></code>): - - <pre class="prettyprint lang-config">RequestReadTimeout body=10,MinRate=1000</pre> - - </li> - - <li> - Allow at least 10 seconds to receive the request including the headers. - If the client sends data, increase the timeout by 1 second for every - 500 bytes received. But do not allow more than 30 seconds for the - request including the headers: - - <pre class="prettyprint lang-config">RequestReadTimeout header=10-30,MinRate=500</pre> - - </li> - - <li> - Usually, a server should have both header and body timeouts configured. - If a common configuration is used for http and https virtual hosts, the - timeouts should not be set too low: - - <pre class="prettyprint lang-config">RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500</pre> - - </li> - - </ol> -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="RequestReadTimeout" id="RequestReadTimeout">RequestReadTimeout</a> <a name="requestreadtimeout" id="requestreadtimeout">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Set timeout values for receiving request headers and body from client. @@ -168,6 +123,51 @@ version 2.3.14 and earlier.</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="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"> <p><span>Available Languages: </span><a href="../en/mod/mod_reqtimeout.html" title="English"> en </a></p> diff --git a/docs/manual/mod/mod_request.html.en b/docs/manual/mod/mod_request.html.en index aefca066d3..f110f6ca30 100644 --- a/docs/manual/mod/mod_request.html.en +++ b/docs/manual/mod/mod_request.html.en @@ -38,7 +38,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#keptbodysize">KeptBodySize</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="KeptBodySize" id="KeptBodySize">KeptBodySize</a> <a name="keptbodysize" id="keptbodysize">Directive</a></h2> <table class="directive"> @@ -95,6 +94,7 @@ mod_include.</td></tr> <li><a href="mod_auth_form.html">mod_auth_form</a> documentation</li> </ul> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_request.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_request.html.tr.utf8 b/docs/manual/mod/mod_request.html.tr.utf8 index f2609c10c9..cf87798bbc 100644 --- a/docs/manual/mod/mod_request.html.tr.utf8 +++ b/docs/manual/mod/mod_request.html.tr.utf8 @@ -38,7 +38,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#keptbodysize">KeptBodySize</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="KeptBodySize" id="KeptBodySize">KeptBodySize</a> <a name="keptbodysize" id="keptbodysize">Yönergesi</a></h2> <table class="directive"> @@ -95,6 +94,7 @@ istek gövdesi iptal edilmek yerine belirtilen azami boyutta tutulur. <li><a href="mod_auth_form.html">mod_auth_form</a> belgesi</li> </ul> </div> + </div> <div class="bottomlang"> <p><span>Mevcut Diller: </span><a href="../en/mod/mod_request.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_rewrite.html.en b/docs/manual/mod/mod_rewrite.html.en index a4874c32ec..f2f5827c3b 100644 --- a/docs/manual/mod/mod_rewrite.html.en +++ b/docs/manual/mod/mod_rewrite.html.en @@ -68,42 +68,6 @@ URLs on the fly</td></tr> <li><img alt="" src="../images/down.gif" /> <a href="#logging">Logging</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="logging" id="logging">Logging</a></h2> - - <p><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> offers detailed logging of its actions - at the <code>trace1</code> to <code>trace8</code> log levels. The - log level can be set specifically for <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> - using the <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> directive: Up to - level <code>debug</code>, no actions are logged, while <code>trace8</code> - means that practically all actions are logged.</p> - - <div class="note"> - Using a high trace log level for <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> - will slow down your Apache HTTP Server dramatically! Use a log - level higher than <code>trace2</code> only for debugging! - </div> - - <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">LogLevel alert rewrite:trace3</pre> -</div> - - <div class="note"><h3>RewriteLog</h3> - <p>Those familiar with earlier versions of - <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> will no doubt be looking for the - <code>RewriteLog</code> and <code>RewriteLogLevel</code> - directives. This functionality has been completely replaced by the - new per-module logging configuration mentioned above. - </p> - - <p>To get just the <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>-specific log - messages, pipe the log file through grep:</p> - <div class="example"><p><code> - tail -f error_log|fgrep '[rewrite:' - </code></p></div> - </div> - -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="RewriteBase" id="RewriteBase">RewriteBase</a> <a name="rewritebase" id="rewritebase">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets the base URL for per-directory rewrites</td></tr> @@ -1465,6 +1429,42 @@ redirection</td> </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"> <p><span>Available Languages: </span><a href="../en/mod/mod_rewrite.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_rewrite.html.fr b/docs/manual/mod/mod_rewrite.html.fr index 3726acf1ba..070cda7066 100644 --- a/docs/manual/mod/mod_rewrite.html.fr +++ b/docs/manual/mod/mod_rewrite.html.fr @@ -77,46 +77,6 @@ rgles permettant de rcrire les URLs des requtes <li><img alt="" src="../images/down.gif" /> <a href="#logging">Journalisation</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="logging" id="logging">Journalisation</a></h2> - - <p><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> offre une journalisation dtaille - de ses actions aux niveaux de journalisation <code>trace1</code> - <code>trace8</code>. Le niveau de journalisation peut tre dfini de - manire spcifique <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 journalise, 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 manire dramatique ! N'utilisez un niveau de journalisation - suprieur <code>trace2</code> qu' des fins de dbogage ! - </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 prcdentes 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 remplaces - par une configuration de la journalisation par module, comme - mentionn plus haut. - </p> - - <p>Pour extraire les traces spcifiques - <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>, affichez le fichier journal en - redirigeant la sortie vers grep :</p> - <div class="example"><p><code> - tail -f error_log|fgrep '[rewrite:' - </code></p></div> - </div> - -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="rewritebase" id="rewritebase">Directive</a> <a name="RewriteBase" id="RewriteBase">RewriteBase</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dfinit l'URL de base pour les rcritures au niveau @@ -1585,6 +1545,46 @@ externe</td> </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 dtaille + de ses actions aux niveaux de journalisation <code>trace1</code> + <code>trace8</code>. Le niveau de journalisation peut tre dfini de + manire spcifique <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 journalise, 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 manire dramatique ! N'utilisez un niveau de journalisation + suprieur <code>trace2</code> qu' des fins de dbogage ! + </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 prcdentes 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 remplaces + par une configuration de la journalisation par module, comme + mentionn plus haut. + </p> + + <p>Pour extraire les traces spcifiques + <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"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_rewrite.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_sed.html.en b/docs/manual/mod/mod_sed.html.en index a71cf27b86..7c8862f07b 100644 --- a/docs/manual/mod/mod_sed.html.en +++ b/docs/manual/mod/mod_sed.html.en @@ -73,6 +73,34 @@ the author's blog</a>.</p> <li><img alt="" src="../images/down.gif" /> <a href="#sed_commands">Sed Commands</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="InputSed" id="InputSed">InputSed</a> <a name="inputsed" id="inputsed">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sed command to filter request data (typically <code>POST</code> data)</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>InputSed <var>sed-command</var></code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_sed</td></tr> +</table> + <p>The <code class="directive">InputSed</code> directive specifies the <code>sed</code> command + to execute on the request data e.g., <code>POST</code> data. + </p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="OutputSed" id="OutputSed">OutputSed</a> <a name="outputsed" id="outputsed">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sed command for filtering response content</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>OutputSed <var>sed-command</var></code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_sed</td></tr> +</table> + <p>The <code class="directive">OutputSed</code> directive specifies the <code>sed</code> + command to execute on the response. + </p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="sampleconf" id="sampleconf">Sample Configuration</a></h2> <div class="example"><h3>Adding an output filter </h3><pre class="prettyprint lang-config"># In the following example, the sed filter will change the string @@ -117,34 +145,6 @@ page</a>. <dd>Swap the contents of the hold buffer and the current line.</dd> </dl> </div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="directive-section"><h2><a name="InputSed" id="InputSed">InputSed</a> <a name="inputsed" id="inputsed">Directive</a></h2> -<table class="directive"> -<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sed command to filter request data (typically <code>POST</code> data)</td></tr> -<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>InputSed <var>sed-command</var></code></td></tr> -<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr> -<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr> -<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_sed</td></tr> -</table> - <p>The <code class="directive">InputSed</code> directive specifies the <code>sed</code> command - to execute on the request data e.g., <code>POST</code> data. - </p> - -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="directive-section"><h2><a name="OutputSed" id="OutputSed">OutputSed</a> <a name="outputsed" id="outputsed">Directive</a></h2> -<table class="directive"> -<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sed command for filtering response content</td></tr> -<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>OutputSed <var>sed-command</var></code></td></tr> -<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr> -<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr> -<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_sed</td></tr> -</table> - <p>The <code class="directive">OutputSed</code> directive specifies the <code>sed</code> - command to execute on the response. - </p> - -</div> </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_sed.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_sed.html.fr b/docs/manual/mod/mod_sed.html.fr index 069dd60c88..56904913d2 100644 --- a/docs/manual/mod/mod_sed.html.fr +++ b/docs/manual/mod/mod_sed.html.fr @@ -83,6 +83,38 @@ recherche/remplacement de chane ou d'expression rationnelle.</p> <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 excuter pour le filtrage des donnes d'une +requte (en gnral des donnes <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>rpertoire, .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 spcifier + la commande sed excuter pour le filtrage des donnes (en gnral + des donnes <code>POST</code>) d'une requte. + </p> + +</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 +rponse</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>rpertoire, .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 spcifier + la commande <code>sed</code> excuter dans le cadre du traitement + d'une rponse. + </p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="sampleconf" id="sampleconf">Exemple de configuration</a></h2> <div class="example"><h3>Ajout d'un filtre en sortie</h3><pre class="prettyprint lang-config"># Dans l'exemple suivant, le filtre sed va remplacer la chane @@ -127,38 +159,6 @@ recherche/remplacement de chane ou d'expression rationnelle.</p> <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 excuter pour le filtrage des donnes d'une -requte (en gnral des donnes <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>rpertoire, .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 spcifier - la commande sed excuter pour le filtrage des donnes (en gnral - des donnes <code>POST</code>) d'une requte. - </p> - -</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 -rponse</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>rpertoire, .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 spcifier - la commande <code>sed</code> excuter dans le cadre du traitement - d'une rponse. - </p> - -</div> </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_sed.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_session.html.en b/docs/manual/mod/mod_session.html.en index 3dc426c725..46fccc515c 100644 --- a/docs/manual/mod/mod_session.html.en +++ b/docs/manual/mod/mod_session.html.en @@ -87,6 +87,144 @@ <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&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&key2=&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 @@ -342,144 +480,6 @@ AuthName "realm" </dl> </div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="directive-section"><h2><a name="Session" id="Session">Session</a> <a name="session" id="session">Directive</a></h2> -<table class="directive"> -<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enables a session for the current directory or location</td></tr> -<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Session On|Off</code></td></tr> -<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>Session Off</code></td></tr> -<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr> -<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr> -<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr> -<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr> -</table> - <p>The <code class="directive">Session</code> directive enables a session for the - directory or location container. Further directives control where the - session will be stored and how privacy is maintained.</p> - -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="directive-section"><h2><a name="SessionEnv" id="SessionEnv">SessionEnv</a> <a name="sessionenv" id="sessionenv">Directive</a></h2> -<table class="directive"> -<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Control whether the contents of the session are written to the -<var>HTTP_SESSION</var> environment variable</td></tr> -<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SessionEnv On|Off</code></td></tr> -<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SessionEnv Off</code></td></tr> -<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr> -<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr> -<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr> -<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr> -</table> - <p>If set to <var>On</var>, the <code class="directive">SessionEnv</code> directive - causes the contents of the session to be written to a CGI environment - variable called <var>HTTP_SESSION</var>.</p> - - <p>The string is written in the URL query format, for example:</p> - - <div class="example"><p><code> - <code>key1=foo&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&key2=&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"> en </a></p> diff --git a/docs/manual/mod/mod_session_cookie.html.en b/docs/manual/mod/mod_session_cookie.html.en index 9654c34982..6c034056f2 100644 --- a/docs/manual/mod/mod_session_cookie.html.en +++ b/docs/manual/mod/mod_session_cookie.html.en @@ -73,25 +73,6 @@ <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> @@ -163,6 +144,25 @@ SessionCookieName2 session path=/private;domain=example.com;httponly;secure;vers </div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="basicexamples" id="basicexamples">Basic Examples</a></h2> + + <p>To create a simple session and store it in a cookie called + <var>session</var>, configure the session as follows:</p> + + <div class="example"><h3>Browser based session</h3><pre class="prettyprint lang-config">Session On +SessionCookieName session path=/</pre> +</div> + + <p>For more examples on how the session can be configured to be read + from and written to by a CGI application, see the + <code class="module"><a href="../mod/mod_session.html">mod_session</a></code> examples section.</p> + + <p>For documentation on how the session can be used to store username + and password details, see the <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> module.</p> + + </div> </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_session_cookie.html" title="English"> en </a></p> diff --git a/docs/manual/mod/mod_session_crypto.html.en b/docs/manual/mod/mod_session_crypto.html.en index 04ea1897a0..7f3148f633 100644 --- a/docs/manual/mod/mod_session_crypto.html.en +++ b/docs/manual/mod/mod_session_crypto.html.en @@ -70,29 +70,6 @@ <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> @@ -231,6 +208,29 @@ SessionCryptoPassphrase "exec:/path/to/otherProgram argument1"</pre></div> </div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="basicusage" id="basicusage">Basic Usage</a></h2> + + <p>To create a simple encrypted session and store it in a cookie called + <var>session</var>, configure the session as follows:</p> + + <div class="example"><h3>Browser based encrypted session</h3><pre class="prettyprint lang-config">Session On +SessionCookieName session path=/ +SessionCryptoPassphrase secret</pre> +</div> + + <p>The session will be encrypted with the given key. Different servers can + be configured to share sessions by ensuring the same encryption key is used + on each server.</p> + + <p>If the encryption key is changed, sessions will be invalidated + automatically.</p> + + <p>For documentation on how the session can be used to store username + and password details, see the <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> module.</p> + + </div> </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_session_crypto.html" title="English"> en </a></p> diff --git a/docs/manual/mod/mod_session_dbd.html.en b/docs/manual/mod/mod_session_dbd.html.en index 8c2600b400..1414f28861 100644 --- a/docs/manual/mod/mod_session_dbd.html.en +++ b/docs/manual/mod/mod_session_dbd.html.en @@ -85,86 +85,6 @@ <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 > %lld)" selectsession -DBDPrepareSQL "delete from session where expiry != 0 and expiry < %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> @@ -323,6 +243,86 @@ SessionDBDCookieName2 session path=/private;domain=example.com;httponly;secure;v </div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="dbdconfig" id="dbdconfig">DBD Configuration</a></h2> + + <p>Before the <code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code> module can be configured to maintain a + session, the <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> module must be configured to make the various database queries + available to the server.</p> + + <p>There are four queries required to keep a session maintained, to select an existing session, + to update an existing session, to insert a new session, and to delete an expired or empty + session. These queries are configured as per the example below.</p> + + <div class="example"><h3>Sample DBD configuration</h3><pre class="prettyprint lang-config">DBDriver pgsql +DBDParams "dbname=apachesession user=apache password=xxxxx host=localhost" +DBDPrepareSQL "delete from session where key = %s" deletesession +DBDPrepareSQL "update session set value = %s, expiry = %lld, key = %s where key = %s" updatesession +DBDPrepareSQL "insert into session (value, expiry, key) values (%s, %lld, %s)" insertsession +DBDPrepareSQL "select value from session where key = %s and (expiry = 0 or expiry > %lld)" selectsession +DBDPrepareSQL "delete from session where expiry != 0 and expiry < %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"> en </a></p> diff --git a/docs/manual/mod/mod_setenvif.html.en b/docs/manual/mod/mod_setenvif.html.en index 4599961c42..dcf734470c 100644 --- a/docs/manual/mod/mod_setenvif.html.en +++ b/docs/manual/mod/mod_setenvif.html.en @@ -77,7 +77,6 @@ BrowserMatch MSIE !netscape</pre> <ul class="seealso"> <li><a href="../env.html">Environment Variables in Apache HTTP Server</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="BrowserMatch" id="BrowserMatch">BrowserMatch</a> <a name="browsermatch" id="browsermatch">Directive</a></h2> <table class="directive"> @@ -322,6 +321,7 @@ without respect to case</td></tr> combination.</p> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_setenvif.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_setenvif.html.fr b/docs/manual/mod/mod_setenvif.html.fr index eee87a30c8..a32d30e938 100644 --- a/docs/manual/mod/mod_setenvif.html.fr +++ b/docs/manual/mod/mod_setenvif.html.fr @@ -79,7 +79,6 @@ BrowserMatch MSIE !netscape</pre> <li><a href="../env.html">Les variables d'environnement et le serveur HTTP Apache</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="browsermatch" id="browsermatch">Directive</a> <a name="BrowserMatch" id="BrowserMatch">BrowserMatch</a></h2> <table class="directive"> @@ -335,6 +334,7 @@ attributs de la requte sans tenir compte de la casse</td></tr> combinaison des mmes caractres, 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"> en </a> | diff --git a/docs/manual/mod/mod_setenvif.html.ja.utf8 b/docs/manual/mod/mod_setenvif.html.ja.utf8 index c6103ca8b8..42b4c82967 100644 --- a/docs/manual/mod/mod_setenvif.html.ja.utf8 +++ b/docs/manual/mod/mod_setenvif.html.ja.utf8 @@ -69,7 +69,6 @@ <ul class="seealso"> <li><a href="../env.html">Apache の環境変数</a></li> </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="BrowserMatch" id="BrowserMatch">BrowserMatch</a> <a name="browsermatch" id="browsermatch">ディレクティブ</a></h2> <table class="directive"> @@ -304,6 +303,7 @@ </div> + </div> <div class="bottomlang"> <p><span>翻訳済み言語: </span><a href="../en/mod/mod_setenvif.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_setenvif.html.ko.euc-kr b/docs/manual/mod/mod_setenvif.html.ko.euc-kr index 3d249bcf6f..502c563b34 100644 --- a/docs/manual/mod/mod_setenvif.html.ko.euc-kr +++ b/docs/manual/mod/mod_setenvif.html.ko.euc-kr @@ -64,7 +64,6 @@ <ul class="seealso"> <li><a href="../env.html">ġ ȯ溯</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="BrowserMatch" id="BrowserMatch">BrowserMatch</a> <a name="browsermatch" id="browsermatch">þ</a></h2> <table class="directive"> @@ -261,6 +260,7 @@ <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"> en </a> | diff --git a/docs/manual/mod/mod_setenvif.html.tr.utf8 b/docs/manual/mod/mod_setenvif.html.tr.utf8 index 3ab30031c1..be9c4c4dff 100644 --- a/docs/manual/mod/mod_setenvif.html.tr.utf8 +++ b/docs/manual/mod/mod_setenvif.html.tr.utf8 @@ -67,7 +67,6 @@ <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"> @@ -310,6 +309,7 @@ bağlı olmaksızın yapılmış tanımlara göre atar.</td></tr> "<code>example</code>" değeri atanmaktadır.</p> </div> + </div> <div class="bottomlang"> <p><span>Mevcut Diller: </span><a href="../en/mod/mod_setenvif.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_so.html.en b/docs/manual/mod/mod_so.html.en index fe3c846579..1fd937166e 100644 --- a/docs/manual/mod/mod_so.html.en +++ b/docs/manual/mod/mod_so.html.en @@ -67,6 +67,53 @@ Windows</td></tr></table> <li><img alt="" src="../images/down.gif" /> <a href="#windows">Creating Loadable Modules for Windows</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="LoadFile" id="LoadFile">LoadFile</a> <a name="loadfile" id="loadfile">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Link in the named object file or library</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LoadFile <em>filename</em> [<em>filename</em>] ...</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_so</td></tr> +</table> + + <p>The LoadFile directive links in the named object files or + libraries when the server is started or restarted; this is used + to load additional code which may be required for some module + to work. <em>Filename</em> is either an absolute path or + relative to <a href="core.html#serverroot">ServerRoot</a>.</p> + + <p>For example:</p> + + <pre class="prettyprint lang-config">LoadFile libexec/libxmlparse.so</pre> + + + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="LoadModule" id="LoadModule">LoadModule</a> <a name="loadmodule" id="loadmodule">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Links in the object file or library, and adds to the list +of active modules</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LoadModule <em>module filename</em></code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_so</td></tr> +</table> + <p>The LoadModule directive links in the object file or library + <em>filename</em> and adds the module structure named + <em>module</em> to the list of active modules. <em>Module</em> + is the name of the external variable of type + <code>module</code> in the file, and is listed as the <a href="module-dict.html#ModuleIdentifier">Module Identifier</a> + in the module documentation. Example:</p> + + <pre class="prettyprint lang-config">LoadModule status_module modules/mod_status.so</pre> + + + <p>loads the named module from the modules subdirectory of the + ServerRoot.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="windows" id="windows">Creating Loadable Modules for Windows</a></h2> @@ -141,53 +188,6 @@ Windows</td></tr></table> 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"> <p><span>Available Languages: </span><a href="../en/mod/mod_so.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_so.html.fr b/docs/manual/mod/mod_so.html.fr index 459d32f6e4..746ace307f 100644 --- a/docs/manual/mod/mod_so.html.fr +++ b/docs/manual/mod/mod_so.html.fr @@ -71,6 +71,56 @@ inclus)</td></tr></table> Windows</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="loadfile" id="loadfile">Directive</a> <a name="LoadFile" id="LoadFile">LoadFile</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Liaison du fichier objet ou de la bibliothque +spcifi</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 + bibliothque spcifi au serveur lors du dmarrage ou du redmarrage + de ce dernier ; ceci permet d'ajouter tout code additionnel + ncessaire au fonctionnement d'un module. + <em>nom-fichier</em> est soit un chemin absolu, soit un chemin + relatif au rpertoire dfini 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 +bibliothque spcifi, 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 + bibliothque <em>nom-fichier</em> avec le serveur, et d'ajouter la + structure de module nomme <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 rfrenc 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 spcifi depuis le sous-rpertoire des modules + situ la racine du serveur.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="windows" id="windows">Cration de modules chargeables pour Windows</a></h2> @@ -153,56 +203,6 @@ Windows</a></h2> 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 bibliothque -spcifi</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 - bibliothque spcifi au serveur lors du dmarrage ou du redmarrage - de ce dernier ; ceci permet d'ajouter tout code additionnel - ncessaire au fonctionnement d'un module. - <em>nom-fichier</em> est soit un chemin absolu, soit un chemin - relatif au rpertoire dfini 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 -bibliothque spcifi, 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 - bibliothque <em>nom-fichier</em> avec le serveur, et d'ajouter la - structure de module nomme <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 rfrenc 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 spcifi depuis le sous-rpertoire des modules - situ la racine du serveur.</p> - -</div> </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_so.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_so.html.ja.utf8 b/docs/manual/mod/mod_so.html.ja.utf8 index ca5bb91adf..72e2d51193 100644 --- a/docs/manual/mod/mod_so.html.ja.utf8 +++ b/docs/manual/mod/mod_so.html.ja.utf8 @@ -68,6 +68,53 @@ <li><img alt="" src="../images/down.gif" /> Windows 用のロード可能なモジュールを作成する</li> </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="LoadFile" id="LoadFile">LoadFile</a> <a name="loadfile" id="loadfile">ディレクティブ</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>指定されたオブジェクトファイルやライブラリをリンクする</td></tr> +<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>LoadFile <em>filename</em> [<em>filename</em>] ...</code></td></tr> +<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr> +<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_so</td></tr> +</table> + + <p>LoadFile ディレクティブは、サーバが起動されたときや再起動されたときに、 + 指定されたオブジェクトファイルやライブラリをリンクします。 + これはモジュールが動作するために必要になるかもしれない追加の + コードを読み込むために使用されます。<em>Filename</em> は絶対パスか、<a href="core.html#serverroot">ServerRoot</a> からの相対パスです。</p> + + <p>例:</p> + + <pre class="prettyprint lang-config">LoadFile libexec/libxmlparse.so</pre> + + + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="LoadModule" id="LoadModule">LoadModule</a> <a name="loadmodule" id="loadmodule">ディレクティブ</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>オブジェクトファイルやライブラリをリンクし、使用モジュールの +リストに追加する</td></tr> +<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>LoadModule <em>module filename</em></code></td></tr> +<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr> +<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_so</td></tr> +</table> + + <p>LoadModule ディレクティブは <em>filename</em> + というオブジェクトファイルおよびライブラリをリンクし、<em>module</em> + という名前のモジュールの構造をアクティブなモジュールのリストに追加します。 + <em>Module</em> はファイル中の <code>module</code> + 型の外部変数の名前で、モジュールのドキュメントに + <a href="module-dict.html#moduleidentifier">モジュール識別子</a>として書かれているものです。例 :</p> + + <pre class="prettyprint lang-config">LoadModule status_module modules/mod_status.so</pre> + + + <p>これは ServerRoot の modules サブディレクトリから指定された名前の + モジュールをロードします。</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2>Windows 用のロード可能なモジュールを作成する</h2> @@ -141,53 +188,6 @@ <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"> en </a> | diff --git a/docs/manual/mod/mod_so.html.ko.euc-kr b/docs/manual/mod/mod_so.html.ko.euc-kr index 55a1d87950..86af5ae659 100644 --- a/docs/manual/mod/mod_so.html.ko.euc-kr +++ b/docs/manual/mod/mod_so.html.ko.euc-kr @@ -65,6 +65,50 @@ <li><img alt="" src="../images/down.gif" /> <a href="#windows"> о </a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="LoadFile" id="LoadFile">LoadFile</a> <a name="loadfile" id="loadfile">þ</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">:</a></th><td> ̳ ̺귯 оδ</td></tr> +<tr><th><a href="directive-dict.html#Syntax">:</a></th><td><code>LoadFile <em>filename</em> [<em>filename</em>] ...</code></td></tr> +<tr><th><a href="directive-dict.html#Context">:</a></th><td>ּ</td></tr> +<tr><th><a href="directive-dict.html#Status">:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">:</a></th><td>mod_so</td></tr> +</table> + + <p>LoadFile þ ϰų Ҷ + ̳ ̺귯 оδ(link in). þ + ϱ ʿ ڵ带 ߰ о϶ + Ѵ. <em>Filename</em> ̰ų <a href="core.html#serverroot">ServerRoot</a> ̴.</p> + + <p> :</p> + + <div class="example"><p><code>LoadFile libexec/libxmlparse.so</code></p></div> + + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="LoadModule" id="LoadModule">LoadModule</a> <a name="loadmodule" id="loadmodule">þ</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">:</a></th><td>̳ ̺귯 о̰, 밡 + Ͽ ߰Ѵ</td></tr> +<tr><th><a href="directive-dict.html#Syntax">:</a></th><td><code>LoadModule <em>module filename</em></code></td></tr> +<tr><th><a href="directive-dict.html#Context">:</a></th><td>ּ</td></tr> +<tr><th><a href="directive-dict.html#Status">:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">:</a></th><td>mod_so</td></tr> +</table> + <p>LoadModule þ Ȥ ̺귯 <em>filename</em> + о̰, 밡 Ͽ <em>module</em>̶ + ü ߰Ѵ. <em>Module</em> + <code>module</code> ڷ ܺκ̸, <a href="module-dict.html#ModuleIdentifier"></a> + ´. :</p> + + <div class="example"><p><code> + LoadModule status_module modules/mod_status.so + </code></p></div> + + <p>ServerRoot modules 丮 оδ.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="windows" id="windows"> о </a></h2> @@ -126,50 +170,6 @@ <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"> <p><span> : </span><a href="../en/mod/mod_so.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_so.html.tr.utf8 b/docs/manual/mod/mod_so.html.tr.utf8 index 5a1762a965..04f1c42ed0 100644 --- a/docs/manual/mod/mod_so.html.tr.utf8 +++ b/docs/manual/mod/mod_so.html.tr.utf8 @@ -65,6 +65,57 @@ yeniden başlatılması sırasında yüklenmesini sağlar.</td></tr> <li><img alt="" src="../images/down.gif" /> <a href="#windows">Yüklenebilir Modüllerin Windows için Oluşturulması</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="LoadFile" id="LoadFile">LoadFile</a> <a name="loadfile" id="loadfile">Yönergesi</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Belirtilen nesne dosyasını veya kütüphaneyi sunucu ile ilintiler. +</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Sözdizimi:</a></th><td><code>LoadFile <em>dosya-ismi</em> [<em>dosya-ismi</em>] ...</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli</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 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> @@ -140,57 +191,6 @@ yeniden başlatılması sırasında yüklenmesini sağlar.</td></tr> 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"> <p><span>Mevcut Diller: </span><a href="../en/mod/mod_so.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_speling.html.en b/docs/manual/mod/mod_speling.html.en index 360e2c5848..85cb9f015b 100644 --- a/docs/manual/mod/mod_speling.html.en +++ b/docs/manual/mod/mod_speling.html.en @@ -72,7 +72,6 @@ misspellings.</td></tr> <li><img alt="" src="../images/down.gif" /> <a href="#checkspelling">CheckSpelling</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="CheckBasenameMatch" id="CheckBasenameMatch">CheckBasenameMatch</a> <a name="checkbasenamematch" id="checkbasenamematch">Directive</a></h2> <table class="directive"> @@ -152,6 +151,7 @@ module</td></tr> </p> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_speling.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_speling.html.ja.utf8 b/docs/manual/mod/mod_speling.html.ja.utf8 index 67d77e5496..75f344fdca 100644 --- a/docs/manual/mod/mod_speling.html.ja.utf8 +++ b/docs/manual/mod/mod_speling.html.ja.utf8 @@ -76,7 +76,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#checkspelling">CheckSpelling</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="CheckBasenameMatch" id="CheckBasenameMatch">CheckBasenameMatch</a> <a name="checkbasenamematch" id="checkbasenamematch">ディレクティブ</a></h2> <table class="directive"> @@ -157,6 +156,7 @@ 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"> en </a> | diff --git a/docs/manual/mod/mod_speling.html.ko.euc-kr b/docs/manual/mod/mod_speling.html.ko.euc-kr index a2f0b58f2f..a8f4b39877 100644 --- a/docs/manual/mod/mod_speling.html.ko.euc-kr +++ b/docs/manual/mod/mod_speling.html.ko.euc-kr @@ -67,7 +67,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#checkspelling">CheckSpelling</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="CheckBasenameMatch" id="CheckBasenameMatch">CheckBasenameMatch</a> <a name="checkbasenamematch" id="checkbasenamematch">þ</a></h2> <table class="directive"> @@ -140,6 +139,7 @@ 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"> en </a> | diff --git a/docs/manual/mod/mod_ssl.html.en b/docs/manual/mod/mod_ssl.html.en index c4e11e9611..5707363a6c 100644 --- a/docs/manual/mod/mod_ssl.html.en +++ b/docs/manual/mod/mod_ssl.html.en @@ -121,205 +121,6 @@ to provide the cryptography engine.</p> <li><img alt="" src="../images/down.gif" /> <a href="#authzproviders">Authorization providers for use with Require</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="envvars" id="envvars">Environment Variables</a></h2> - -<p>This module can be configured to provide several items of SSL information -as additional environment variables to the SSI and CGI namespace. This -information is not provided by default for performance reasons. (See -<code class="directive">SSLOptions</code> StdEnvVars, below.) The generated variables -are listed in the table below. For backward compatibility the information can -be made available under different names, too. Look in the <a href="../ssl/ssl_compat.html">Compatibility</a> chapter for details on the -compatibility variables.</p> - -<table class="bordered"> - -<tr> - <th><a name="table3">Variable Name:</a></th> - <th>Value Type:</th> - <th>Description:</th> -</tr> -<tr><td><code>HTTPS</code></td> <td>flag</td> <td>HTTPS is being used.</td></tr> -<tr><td><code>SSL_PROTOCOL</code></td> <td>string</td> <td>The SSL protocol version (SSLv3, TLSv1, TLSv1.1, TLSv1.2)</td></tr> -<tr><td><code>SSL_SESSION_ID</code></td> <td>string</td> <td>The hex-encoded SSL session id</td></tr> -<tr><td><code>SSL_SESSION_RESUMED</code></td> <td>string</td> <td>Initial or Resumed SSL Session. Note: multiple requests may be served over the same (Initial or Resumed) SSL session if HTTP KeepAlive is in use</td></tr> -<tr><td><code>SSL_SECURE_RENEG</code></td> <td>string</td> <td><code>true</code> if secure renegotiation is supported, else <code>false</code></td></tr> -<tr><td><code>SSL_CIPHER</code></td> <td>string</td> <td>The cipher specification name</td></tr> -<tr><td><code>SSL_CIPHER_EXPORT</code></td> <td>string</td> <td><code>true</code> if cipher is an export cipher</td></tr> -<tr><td><code>SSL_CIPHER_USEKEYSIZE</code></td> <td>number</td> <td>Number of cipher bits (actually used)</td></tr> -<tr><td><code>SSL_CIPHER_ALGKEYSIZE</code></td> <td>number</td> <td>Number of cipher bits (possible)</td></tr> -<tr><td><code>SSL_COMPRESS_METHOD</code></td> <td>string</td> <td>SSL compression method negotiated</td></tr> -<tr><td><code>SSL_VERSION_INTERFACE</code></td> <td>string</td> <td>The mod_ssl program version</td></tr> -<tr><td><code>SSL_VERSION_LIBRARY</code></td> <td>string</td> <td>The OpenSSL program version</td></tr> -<tr><td><code>SSL_CLIENT_M_VERSION</code></td> <td>string</td> <td>The version of the client certificate</td></tr> -<tr><td><code>SSL_CLIENT_M_SERIAL</code></td> <td>string</td> <td>The serial of the client certificate</td></tr> -<tr><td><code>SSL_CLIENT_S_DN</code></td> <td>string</td> <td>Subject DN in client's certificate</td></tr> -<tr><td><code>SSL_CLIENT_S_DN_</code><em>x509</em></td> <td>string</td> <td>Component of client's Subject DN</td></tr> -<tr><td><code>SSL_CLIENT_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 @@ -2560,6 +2361,205 @@ known to the server (i.e. the CA's certificate is under </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"> <p><span>Available Languages: </span><a href="../en/mod/mod_ssl.html" title="English"> en </a></p> diff --git a/docs/manual/mod/mod_ssl_ct.html.en b/docs/manual/mod/mod_ssl_ct.html.en index daacf53510..c14947dc04 100644 --- a/docs/manual/mod/mod_ssl_ct.html.en +++ b/docs/manual/mod/mod_ssl_ct.html.en @@ -115,186 +115,6 @@ testing.</p> <li><img alt="" src="../images/down.gif" /> <a href="#audit">Off-line audit for proxy</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="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> @@ -559,6 +379,186 @@ 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"> en </a></p> diff --git a/docs/manual/mod/mod_substitute.html.en b/docs/manual/mod/mod_substitute.html.en index b27444190e..f013f4cba0 100644 --- a/docs/manual/mod/mod_substitute.html.en +++ b/docs/manual/mod/mod_substitute.html.en @@ -42,7 +42,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#substitutemaxlinelength">SubstituteMaxLineLength</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="Substitute" id="Substitute">Substitute</a> <a name="substitute" id="substitute">Directive</a></h2> <table class="directive"> @@ -156,6 +155,7 @@ Substitute "s|http://internal.blog.example.com/|http://www.example.com/blog/|i"< </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_substitute.html" title="English"> en </a></p> diff --git a/docs/manual/mod/mod_suexec.html.en b/docs/manual/mod/mod_suexec.html.en index 403b895983..bf5fc495ad 100644 --- a/docs/manual/mod/mod_suexec.html.en +++ b/docs/manual/mod/mod_suexec.html.en @@ -47,7 +47,6 @@ and Group</td></tr> <ul class="seealso"> <li><a href="../suexec.html">SuEXEC support</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="SuexecUserGroup" id="SuexecUserGroup">SuexecUserGroup</a> <a name="suexecusergroup" id="suexecusergroup">Directive</a></h2> <table class="directive"> @@ -72,6 +71,7 @@ and Group</td></tr> <li><code class="directive"><a href="../mod/mod_unixd.html#suexec">Suexec</a></code></li> </ul> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_suexec.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_suexec.html.ja.utf8 b/docs/manual/mod/mod_suexec.html.ja.utf8 index bae6cbce18..f6189612ea 100644 --- a/docs/manual/mod/mod_suexec.html.ja.utf8 +++ b/docs/manual/mod/mod_suexec.html.ja.utf8 @@ -52,7 +52,6 @@ <ul class="seealso"> <li><a href="../suexec.html">SuEXEC サポート</a></li> </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="SuexecUserGroup" id="SuexecUserGroup">SuexecUserGroup</a> <a name="suexecusergroup" id="suexecusergroup">ディレクティブ</a></h2> <table class="directive"> @@ -76,6 +75,7 @@ </div> + </div> <div class="bottomlang"> <p><span>翻訳済み言語: </span><a href="../en/mod/mod_suexec.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_suexec.html.ko.euc-kr b/docs/manual/mod/mod_suexec.html.ko.euc-kr index 432a51b17d..a760f2b165 100644 --- a/docs/manual/mod/mod_suexec.html.ko.euc-kr +++ b/docs/manual/mod/mod_suexec.html.ko.euc-kr @@ -50,7 +50,6 @@ <ul class="seealso"> <li><a href="../suexec.html">SuEXEC </a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="SuexecUserGroup" id="SuexecUserGroup">SuexecUserGroup</a> <a name="suexecusergroup" id="suexecusergroup">þ</a></h2> <table class="directive"> @@ -74,6 +73,7 @@ </div> + </div> <div class="bottomlang"> <p><span> : </span><a href="../en/mod/mod_suexec.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_suexec.html.tr.utf8 b/docs/manual/mod/mod_suexec.html.tr.utf8 index 848ba4883a..f1b5f2e82f 100644 --- a/docs/manual/mod/mod_suexec.html.tr.utf8 +++ b/docs/manual/mod/mod_suexec.html.tr.utf8 @@ -50,7 +50,6 @@ <ul class="seealso"> <li><a href="../suexec.html">SuEXEC Desteği</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="SuexecUserGroup" id="SuexecUserGroup">SuexecUserGroup</a> <a name="suexecusergroup" id="suexecusergroup">Yönergesi</a></h2> <table class="directive"> @@ -81,6 +80,7 @@ <li><code class="directive"><a href="../mod/mod_unixd.html#suexec">Suexec</a></code></li> </ul> </div> + </div> <div class="bottomlang"> <p><span>Mevcut Diller: </span><a href="../en/mod/mod_suexec.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_systemd.html.en b/docs/manual/mod/mod_systemd.html.en index 42221b5a7e..d686e1228d 100644 --- a/docs/manual/mod/mod_systemd.html.en +++ b/docs/manual/mod/mod_systemd.html.en @@ -44,7 +44,6 @@ <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"> @@ -75,6 +74,7 @@ </p></div> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_systemd.html" title="English"> en </a></p> diff --git a/docs/manual/mod/mod_unixd.html.en b/docs/manual/mod/mod_unixd.html.en index a30f927477..0cc4a63099 100644 --- a/docs/manual/mod/mod_unixd.html.en +++ b/docs/manual/mod/mod_unixd.html.en @@ -43,7 +43,6 @@ <ul class="seealso"> <li><a href="../suexec.html">suEXEC support</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="ChrootDir" id="ChrootDir">ChrootDir</a> <a name="chrootdir" id="chrootdir">Directive</a></h2> <table class="directive"> @@ -175,6 +174,7 @@ requests</td></tr> <li><code class="directive"><a href="../mod/mod_suexec.html#suexecusergroup">SuexecUserGroup</a></code></li> </ul> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_unixd.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_unixd.html.tr.utf8 b/docs/manual/mod/mod_unixd.html.tr.utf8 index 7cd29665f8..6381c46dbd 100644 --- a/docs/manual/mod/mod_unixd.html.tr.utf8 +++ b/docs/manual/mod/mod_unixd.html.tr.utf8 @@ -42,7 +42,6 @@ <ul class="seealso"> <li><a href="../suexec.html">suEXEC desteği</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="ChrootDir" id="ChrootDir">ChrootDir</a> <a name="chrootdir" id="chrootdir">Yönergesi</a></h2> <table class="directive"> @@ -184,6 +183,7 @@ <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"> en </a> | diff --git a/docs/manual/mod/mod_userdir.html.en b/docs/manual/mod/mod_userdir.html.en index bf4b02c5c3..9d28b98df0 100644 --- a/docs/manual/mod/mod_userdir.html.en +++ b/docs/manual/mod/mod_userdir.html.en @@ -49,7 +49,6 @@ Filesystem</a></li> <li><a href="../howto/public_html.html">public_html tutorial</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="UserDir" id="UserDir">UserDir</a> <a name="userdir" id="userdir">Directive</a></h2> <table class="directive"> @@ -178,6 +177,7 @@ UserDir enabled user1 user2 user3</pre> </li> </ul> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_userdir.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_userdir.html.ja.utf8 b/docs/manual/mod/mod_userdir.html.ja.utf8 index 17253db08e..a38b887061 100644 --- a/docs/manual/mod/mod_userdir.html.ja.utf8 +++ b/docs/manual/mod/mod_userdir.html.ja.utf8 @@ -55,7 +55,6 @@ <li><a href="../howto/public_html.html">public_html チュートリアル</a></li> </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="UserDir" id="UserDir">UserDir</a> <a name="userdir" id="userdir">ディレクティブ</a></h2> <table class="directive"> @@ -182,6 +181,7 @@ Apache はリダイレクトが成功するかどうかを決めることはで チュートリアル</a></li> </ul> </div> + </div> <div class="bottomlang"> <p><span>翻訳済み言語: </span><a href="../en/mod/mod_userdir.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_userdir.html.ko.euc-kr b/docs/manual/mod/mod_userdir.html.ko.euc-kr index 6dbd9d3046..9aaaeada67 100644 --- a/docs/manual/mod/mod_userdir.html.ko.euc-kr +++ b/docs/manual/mod/mod_userdir.html.ko.euc-kr @@ -50,7 +50,6 @@ <li><a href="../howto/public_html.html">public_html 丮</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="UserDir" id="UserDir">UserDir</a> <a name="userdir" id="userdir">þ</a></h2> <table class="directive"> @@ -154,6 +153,7 @@ http://www.foo.com/bob/one/two.html ̷ .</p> 丮</a></li> </ul> </div> + </div> <div class="bottomlang"> <p><span> : </span><a href="../en/mod/mod_userdir.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_userdir.html.tr.utf8 b/docs/manual/mod/mod_userdir.html.tr.utf8 index a3f21daa77..a8496e35db 100644 --- a/docs/manual/mod/mod_userdir.html.tr.utf8 +++ b/docs/manual/mod/mod_userdir.html.tr.utf8 @@ -53,7 +53,6 @@ <a href="../howto/public_html.html">public_html eğitmeni</a> </li> </ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="UserDir" id="UserDir">UserDir</a> <a name="userdir" id="userdir">Yönergesi</a></h2> <table class="directive"> @@ -179,6 +178,7 @@ </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"> en </a> | diff --git a/docs/manual/mod/mod_usertrack.html.en b/docs/manual/mod/mod_usertrack.html.en index de51874b42..60f618730a 100644 --- a/docs/manual/mod/mod_usertrack.html.en +++ b/docs/manual/mod/mod_usertrack.html.en @@ -50,19 +50,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#logging">Logging</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="logging" id="logging">Logging</a></h2> - - - <p><code class="module"><a href="../mod/mod_usertrack.html">mod_usertrack</a></code> sets a cookie which can be logged - via <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code> configurable logging formats:</p> - - <pre class="prettyprint lang-config">LogFormat "%{Apache}n %r %t" usertrack -CustomLog logs/clickstream.log usertrack</pre> - - -</div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="CookieDomain" id="CookieDomain">CookieDomain</a> <a name="cookiedomain" id="cookiedomain">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The domain to which the tracking cookie applies</td></tr> @@ -207,6 +194,19 @@ CustomLog logs/clickstream.log usertrack</pre> </div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="logging" id="logging">Logging</a></h2> + + + <p><code class="module"><a href="../mod/mod_usertrack.html">mod_usertrack</a></code> sets a cookie which can be logged + via <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code> configurable logging formats:</p> + + <pre class="prettyprint lang-config">LogFormat "%{Apache}n %r %t" usertrack +CustomLog logs/clickstream.log usertrack</pre> + + +</div> </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_usertrack.html" title="English"> en </a></p> diff --git a/docs/manual/mod/mod_version.html.en b/docs/manual/mod/mod_version.html.en index eb7321be8f..1c1c038a57 100644 --- a/docs/manual/mod/mod_version.html.en +++ b/docs/manual/mod/mod_version.html.en @@ -56,7 +56,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#ifversion"><IfVersion></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"><IfVersion></a> <a name="ifversion" id="ifversion">Directive</a></h2> <table class="directive"> @@ -128,6 +127,7 @@ <code>=</code>.</p> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_version.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_version.html.ja.utf8 b/docs/manual/mod/mod_version.html.ja.utf8 index e2137c8114..a44d3cfe7f 100644 --- a/docs/manual/mod/mod_version.html.ja.utf8 +++ b/docs/manual/mod/mod_version.html.ja.utf8 @@ -56,7 +56,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#ifversion"><IfVersion></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"><IfVersion></a> <a name="ifversion" id="ifversion">ディレクティブ</a></h2> <table class="directive"> @@ -126,6 +125,7 @@ みなされます。</p> </div> + </div> <div class="bottomlang"> <p><span>翻訳済み言語: </span><a href="../en/mod/mod_version.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_version.html.ko.euc-kr b/docs/manual/mod/mod_version.html.ko.euc-kr index 374d566c81..6a8d94ef12 100644 --- a/docs/manual/mod/mod_version.html.ko.euc-kr +++ b/docs/manual/mod/mod_version.html.ko.euc-kr @@ -64,7 +64,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#ifversion"><IfVersion></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"><IfVersion></a> <a name="ifversion" id="ifversion">þ</a></h2> <table class="directive"> @@ -142,6 +141,7 @@ Ѵ.</p> </div> + </div> <div class="bottomlang"> <p><span> : </span><a href="../en/mod/mod_version.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_vhost_alias.html.en b/docs/manual/mod/mod_vhost_alias.html.en index b0711735dd..d7247ed2df 100644 --- a/docs/manual/mod/mod_vhost_alias.html.en +++ b/docs/manual/mod/mod_vhost_alias.html.en @@ -71,6 +71,96 @@ VirtualScriptAlias /never/found/%0/cgi-bin/</pre> virtual hosting</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="VirtualDocumentRoot" id="VirtualDocumentRoot">VirtualDocumentRoot</a> <a name="virtualdocumentroot" id="virtualdocumentroot">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dynamically configure the location of the document root +for a given virtual host</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>VirtualDocumentRoot <em>interpolated-directory</em>|none</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>VirtualDocumentRoot none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_vhost_alias</td></tr> +</table> + + <p>The <code class="directive">VirtualDocumentRoot</code> directive allows you to + determine where Apache HTTP Server will find your documents based on the + value of the server name. The result of expanding + <em>interpolated-directory</em> is used as the root of the + document tree in a similar manner to the <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> directive's argument. + If <em>interpolated-directory</em> is <code>none</code> then + <code class="directive">VirtualDocumentRoot</code> is turned off. This directive + cannot be used in the same context as <code class="directive"><a href="#virtualdocumentrootip">VirtualDocumentRootIP</a></code>.</p> + +<div class="warning"><h3>Note</h3> +<code class="directive">VirtualDocumentRoot</code> will override any <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> directives you may have put in the same +context or child contexts. Putting a <code class="directive">VirtualDocumentRoot</code> +in the global server scope will effectively override <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> directives in any virtual hosts defined later +on, unless you set <code class="directive">VirtualDocumentRoot</code> to <code>None</code> +in each virtual host. +</div> + + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="VirtualDocumentRootIP" id="VirtualDocumentRootIP">VirtualDocumentRootIP</a> <a name="virtualdocumentrootip" id="virtualdocumentrootip">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dynamically configure the location of the document root +for a given virtual host</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>VirtualDocumentRootIP <em>interpolated-directory</em>|none</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>VirtualDocumentRootIP none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_vhost_alias</td></tr> +</table> + +<p>The <code class="directive">VirtualDocumentRootIP</code> directive is like the + <code class="directive"><a href="#virtualdocumentroot">VirtualDocumentRoot</a></code> + directive, except that it uses the IP address of the server end + of the connection for directory interpolation instead of the server + name.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="VirtualScriptAlias" id="VirtualScriptAlias">VirtualScriptAlias</a> <a name="virtualscriptalias" id="virtualscriptalias">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dynamically configure the location of the CGI directory for +a given virtual host</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>VirtualScriptAlias <em>interpolated-directory</em>|none</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>VirtualScriptAlias none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_vhost_alias</td></tr> +</table> + + <p>The <code class="directive">VirtualScriptAlias</code> directive allows you to + determine where Apache httpd will find CGI scripts in a similar + manner to <code class="directive"><a href="#virtualdocumentroot">VirtualDocumentRoot</a></code> does for other documents. It matches + requests for URIs starting <code>/cgi-bin/</code>, much like <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code> + <code>/cgi-bin/</code> would.</p> + + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="VirtualScriptAliasIP" id="VirtualScriptAliasIP">VirtualScriptAliasIP</a> <a name="virtualscriptaliasip" id="virtualscriptaliasip">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dynamically configure the location of the CGI directory for +a given virtual host</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>VirtualScriptAliasIP <em>interpolated-directory</em>|none</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>VirtualScriptAliasIP none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_vhost_alias</td></tr> +</table> + + <p>The <code class="directive">VirtualScriptAliasIP</code> directive is like the + <code class="directive"><a href="#virtualscriptalias">VirtualScriptAlias</a></code> + directive, except that it uses the IP address of the server end + of the connection for directory interpolation instead of the server + name.</p> + + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="interpol" id="interpol">Directory Name Interpolation</a></h2> @@ -236,96 +326,6 @@ VirtualScriptAliasIP /usr/local/apache/vhosts/%1/%2/%3/%4/cgi-bin</pre> 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"> <p><span>Available Languages: </span><a href="../en/mod/mod_vhost_alias.html" title="English"> en </a> | diff --git a/docs/manual/mod/mod_vhost_alias.html.tr.utf8 b/docs/manual/mod/mod_vhost_alias.html.tr.utf8 index 7f30df4114..b10187fd35 100644 --- a/docs/manual/mod/mod_vhost_alias.html.tr.utf8 +++ b/docs/manual/mod/mod_vhost_alias.html.tr.utf8 @@ -72,6 +72,85 @@ 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> @@ -221,85 +300,6 @@ Sanal Barındırma</a></li> <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"> <p><span>Mevcut Diller: </span><a href="../en/mod/mod_vhost_alias.html" hreflang="en" rel="alternate" title="English"> en </a> | diff --git a/docs/manual/mod/mod_watchdog.html.en b/docs/manual/mod/mod_watchdog.html.en index 87fb8178fe..8b778b8c45 100644 --- a/docs/manual/mod/mod_watchdog.html.en +++ b/docs/manual/mod/mod_watchdog.html.en @@ -53,7 +53,6 @@ core or, if a dynamic module, be loaded before the calling module. <li><img alt="" src="../images/down.gif" /> <a href="#watchdoginterval">WatchdogInterval</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="WatchdogInterval" id="WatchdogInterval">WatchdogInterval</a> <a name="watchdoginterval" id="watchdoginterval">Directive</a></h2> <table class="directive"> @@ -68,6 +67,7 @@ core or, if a dynamic module, be loaded before the calling module. second.</p> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_watchdog.html" title="English"> en </a></p> diff --git a/docs/manual/mod/mod_xml2enc.html.en b/docs/manual/mod/mod_xml2enc.html.en index e87fd0393e..9c51e9b52c 100644 --- a/docs/manual/mod/mod_xml2enc.html.en +++ b/docs/manual/mod/mod_xml2enc.html.en @@ -58,6 +58,58 @@ for 2.2.x versions</td></tr></table> <li><img alt="" src="../images/down.gif" /> <a href="#alias">Unsupported Encodings</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="xml2EncAlias" id="xml2EncAlias">xml2EncAlias</a> <a name="xml2encalias" id="xml2encalias">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Recognise Aliases for encoding values</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>xml2EncAlias <var>charset alias [alias ...]</var></code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_xml2enc</td></tr> +</table> + <p>This server-wide directive aliases one or more encoding to another + encoding. This enables encodings not recognised by libxml2 to be handled + internally by libxml2's encoding support using the translation table for + a recognised encoding. This serves two purposes: to support character sets + (or names) not recognised either by libxml2 or iconv, and to skip + conversion for an encoding where it is known to be unnecessary.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="xml2EncDefault" id="xml2EncDefault">xml2EncDefault</a> <a name="xml2encdefault" id="xml2encdefault">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets a default encoding to assume when absolutely no information +can be <a href="#sniffing">automatically detected</a></td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>xml2EncDefault <var>name</var></code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_xml2enc</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Version 2.4.0 and later; available as a third-party +module for earlier versions.</td></tr> +</table> + <p>If you are processing data with known encoding but no encoding + information, you can set this default to help mod_xml2enc process + the data correctly. For example, to work with the default value + of Latin1 (<var>iso-8859-1</var> specified in HTTP/1.0, use</p> + <pre class="prettyprint lang-config">xml2EncDefault iso-8859-1</pre> + + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="xml2StartParse" id="xml2StartParse">xml2StartParse</a> <a name="xml2startparse" id="xml2startparse">Directive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Advise the parser to skip leading junk.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>xml2StartParse <var>element [element ...]</var></code></td></tr> +<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_xml2enc</td></tr> +</table> + <p>Specify that the markup parser should start at the first instance + of any of the elements specified. This can be used as a workaround + where a broken backend inserts leading junk that messes up the parser (<a href="http://bahumbug.wordpress.com/2006/10/12/mod_proxy_html-revisited/">example here</a>).</p> + <p>It should never be used for XML, nor well-formed HTML.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="usage" id="usage">Usage</a></h2> <p>There are two usage scenarios: with modules programmed to work @@ -132,58 +184,6 @@ the server of an unnecessary conversion.</p> 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"> <p><span>Available Languages: </span><a href="../en/mod/mod_xml2enc.html" title="English"> en </a></p> diff --git a/docs/manual/mod/mpm_common.html.de b/docs/manual/mod/mpm_common.html.de index 40210cfe2e..ddd0cbb604 100644 --- a/docs/manual/mod/mpm_common.html.de +++ b/docs/manual/mod/mpm_common.html.de @@ -61,7 +61,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#threadstacksize">ThreadStackSize</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">Kommentare</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="CoreDumpDirectory" id="CoreDumpDirectory">CoreDumpDirectory</a>-<a name="coredumpdirectory" id="coredumpdirectory">Direktive</a></h2> <table class="directive"> @@ -740,6 +739,7 @@ verwendet wird, die Client-Verbindungen bearbeiten.</td></tr> </ul> </div> + </div> <div class="bottomlang"> <p><span>Verfgbare Sprachen: </span><a href="../de/mod/mpm_common.html" title="Deutsch"> de </a> | diff --git a/docs/manual/mod/mpm_common.html.en b/docs/manual/mod/mpm_common.html.en index 14ecbc54b8..2069c14ccd 100644 --- a/docs/manual/mod/mpm_common.html.en +++ b/docs/manual/mod/mpm_common.html.en @@ -58,7 +58,6 @@ more than one multi-processing module (MPM)</td></tr> <li><img alt="" src="../images/down.gif" /> <a href="#threadstacksize">ThreadStackSize</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="CoreDumpDirectory" id="CoreDumpDirectory">CoreDumpDirectory</a> <a name="coredumpdirectory" id="coredumpdirectory">Directive</a></h2> <table class="directive"> @@ -787,6 +786,7 @@ client connections</td></tr> causes crashes with some common modules.</div> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../de/mod/mpm_common.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> | diff --git a/docs/manual/mod/mpm_common.html.ja.utf8 b/docs/manual/mod/mpm_common.html.ja.utf8 index 39c7a3e1e6..ffb01a613c 100644 --- a/docs/manual/mod/mpm_common.html.ja.utf8 +++ b/docs/manual/mod/mpm_common.html.ja.utf8 @@ -62,7 +62,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#threadstacksize">ThreadStackSize</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="CoreDumpDirectory" id="CoreDumpDirectory">CoreDumpDirectory</a> <a name="coredumpdirectory" id="coredumpdirectory">ディレクティブ</a></h2> <table class="directive"> @@ -762,6 +761,7 @@ simultaneously</td></tr> </ul> </div> + </div> <div class="bottomlang"> <p><span>翻訳済み言語: </span><a href="../de/mod/mpm_common.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> | diff --git a/docs/manual/mod/mpm_common.html.tr.utf8 b/docs/manual/mod/mpm_common.html.tr.utf8 index 3af7a6b282..f721bc614a 100644 --- a/docs/manual/mod/mpm_common.html.tr.utf8 +++ b/docs/manual/mod/mpm_common.html.tr.utf8 @@ -59,7 +59,6 @@ <li><img alt="" src="../images/down.gif" /> <a href="#threadstacksize">ThreadStackSize</a></li> </ul> <ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="CoreDumpDirectory" id="CoreDumpDirectory">CoreDumpDirectory</a> <a name="coredumpdirectory" id="coredumpdirectory">Yönergesi</a></h2> <table class="directive"> @@ -799,6 +798,7 @@ 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"> de </a> | diff --git a/docs/manual/mod/mpm_netware.html.en b/docs/manual/mod/mpm_netware.html.en index 5ee01b03b4..43a98b1812 100644 --- a/docs/manual/mod/mpm_netware.html.en +++ b/docs/manual/mod/mpm_netware.html.en @@ -83,7 +83,6 @@ ports Apache httpd uses</a> </li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> - <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="MaxThreads" id="MaxThreads">MaxThreads</a> <a name="maxthreads" id="maxthreads">Directive</a></h2> <table class="directive"> @@ -104,6 +103,7 @@ </code></p></div> </div> + </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mpm_netware.html" title="English"> en </a></p> diff --git a/docs/manual/mod/prefork.html.de b/docs/manual/mod/prefork.html.de index d260da3984..2aa212bbbe 100644 --- a/docs/manual/mod/prefork.html.de +++ b/docs/manual/mod/prefork.html.de @@ -84,48 +84,6 @@ 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 fr den Start von - Kindprozessen verantwortlich, die auf Verbindungen warten und diese - bedienen, sobald sie eintreffen. Der Apache versucht immer, mehrere - <dfn>freie</dfn> oder unbeschftigte Serverprozesse vorzuhalten, - die zur Bedienung eingehender Anfragen bereit stehen. Auf diese Weise - mssen 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 verndern - mssen. Systeme, die mehr als 256 gleichzeitige Anfragen bedienen - mssen, knnen <code class="directive"><a href="../mod/mpm_common.html#maxclients">MaxClients</a></code> erhhen, whrend - Systeme mit begrenztem Arbeitsspeicher mglicherweise - <code class="directive"><a href="../mod/mpm_common.html#maxclients">MaxClients</a></code> heruntersetzen - mssen, um den Server vor Flatterverhalten (Arbeitsspeicherinhalte auf - Platte auslagern - und zurck) zu schtzen. Weitere - Informationen zur Feinabstimmung der Prozesserstellung sind in den - <a href="../misc/perf-tuning.html">Performance-Hinweisen</a> zu - finden.</p> - - <p>Whren der Elternprozess unter Unix normalerweise als - <code>root</code> gestartet wird, um sich an Port 80 binden zu knnen, - 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 mssen in der Lage sein, alle Inhalte zu lesen, die - sie ausliefern sollen, sollten darber hinaus jedoch so wenig wie - mglich Rechte besitzen.</p> - - <p><code class="directive"><a href="../mod/mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></code> - bestimmt, wie hufig 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 unbeschftigten Kindprozesse des @@ -185,6 +143,48 @@ <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 fr den Start von + Kindprozessen verantwortlich, die auf Verbindungen warten und diese + bedienen, sobald sie eintreffen. Der Apache versucht immer, mehrere + <dfn>freie</dfn> oder unbeschftigte Serverprozesse vorzuhalten, + die zur Bedienung eingehender Anfragen bereit stehen. Auf diese Weise + mssen 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 verndern + mssen. Systeme, die mehr als 256 gleichzeitige Anfragen bedienen + mssen, knnen <code class="directive"><a href="../mod/mpm_common.html#maxclients">MaxClients</a></code> erhhen, whrend + Systeme mit begrenztem Arbeitsspeicher mglicherweise + <code class="directive"><a href="../mod/mpm_common.html#maxclients">MaxClients</a></code> heruntersetzen + mssen, um den Server vor Flatterverhalten (Arbeitsspeicherinhalte auf + Platte auslagern - und zurck) zu schtzen. Weitere + Informationen zur Feinabstimmung der Prozesserstellung sind in den + <a href="../misc/perf-tuning.html">Performance-Hinweisen</a> zu + finden.</p> + + <p>Whren der Elternprozess unter Unix normalerweise als + <code>root</code> gestartet wird, um sich an Port 80 binden zu knnen, + 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 mssen in der Lage sein, alle Inhalte zu lesen, die + sie ausliefern sollen, sollten darber hinaus jedoch so wenig wie + mglich Rechte besitzen.</p> + + <p><code class="directive"><a href="../mod/mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></code> + bestimmt, wie hufig der Server Prozesse erneuert, indem er alte + beendet und neue startet.</p> +</div> </div> <div class="bottomlang"> <p><span>Verfgbare Sprachen: </span><a href="../de/mod/prefork.html" title="Deutsch"> de </a> | diff --git a/docs/manual/mod/prefork.html.en b/docs/manual/mod/prefork.html.en index 6a79a0dc86..92447341a0 100644 --- a/docs/manual/mod/prefork.html.en +++ b/docs/manual/mod/prefork.html.en @@ -79,49 +79,6 @@ 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> @@ -181,6 +138,49 @@ uses</a></li> <li><code class="directive"><a href="../mod/mpm_common.html#minsparethreads">MinSpareThreads</a></code></li> </ul> </div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="how-it-works" id="how-it-works">How it Works</a></h2> + <p>A single control process is responsible for launching child + processes which listen for connections and serve them when they + arrive. Apache httpd always tries to maintain several <dfn>spare</dfn> + or idle server processes, which stand ready to serve incoming + requests. In this way, clients do not need to wait for a new + child processes to be forked before their requests can be + served.</p> + + <p>The <code class="directive"><a href="../mod/mpm_common.html#startservers">StartServers</a></code>, + <code class="directive"><a href="#minspareservers">MinSpareServers</a></code>, + <code class="directive"><a href="#maxspareservers">MaxSpareServers</a></code>, and + <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> regulate how + the parent process creates children to serve requests. In general, + Apache httpd is very self-regulating, so most sites do not need to + adjust these directives from their default values. Sites which + need to serve more than 256 simultaneous requests may need to + increase <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code>, + while sites with limited memory may need to decrease <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> to keep the server from + thrashing (swapping memory to disk and back). More information + about tuning process creation is provided in the <a href="../misc/perf-tuning.html">performance hints</a> + documentation.</p> + + <p>While the parent process is usually started as <code>root</code> + under Unix in order to bind to port 80, the child processes are + launched by Apache httpd as a less-privileged user. The <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code> and <code class="directive"><a href="../mod/mod_unixd.html#group">Group</a></code> directives are used to set + the privileges of the Apache httpd child processes. The child processes + must be able to read all the content that will be served, but + should have as few privileges beyond that as possible.</p> + + <p><code class="directive"><a href="../mod/mpm_common.html#maxconnectionsperchild">MaxConnectionsPerChild</a></code> + controls how frequently the server recycles processes by killing + old ones and launching new ones.</p> + + <p>This MPM uses the <code>mpm-accept</code> mutex to serialize + access to incoming connections when subject to the thundering herd + problem (generally, when there are multiple listening sockets). + The implementation aspects of this mutex can be configured with the + <code class="directive"><a href="../mod/core.html#mutex">Mutex</a></code> directive. The <a href="../misc/perf-tuning.html">performance hints</a> + documentation has additional information about this mutex.</p> +</div> </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../de/mod/prefork.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> | diff --git a/docs/manual/mod/prefork.html.ja.utf8 b/docs/manual/mod/prefork.html.ja.utf8 index 4b796f7af2..3aa14c4ea1 100644 --- a/docs/manual/mod/prefork.html.ja.utf8 +++ b/docs/manual/mod/prefork.html.ja.utf8 @@ -86,51 +86,6 @@ が使用するアドレスとポートの設定</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> @@ -183,6 +138,51 @@ <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"> de </a> | diff --git a/docs/manual/mod/prefork.html.tr.utf8 b/docs/manual/mod/prefork.html.tr.utf8 index f6649b64a8..266299f7a6 100644 --- a/docs/manual/mod/prefork.html.tr.utf8 +++ b/docs/manual/mod/prefork.html.tr.utf8 @@ -79,47 +79,6 @@ 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> @@ -180,6 +139,47 @@ <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"> de </a> | |