1
0
mirror of https://github.com/apache/httpd.git synced 2026-01-06 09:01:14 +03:00

Rebuilds Daniel's change to the order of directictives vs topics in

manual docs.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1673854 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Rich Bowen
2015-04-15 16:33:41 +00:00
parent 2c3efa3157
commit cf8ed4e44a
265 changed files with 15802 additions and 15802 deletions

View File

@@ -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 <20>bersetzt. Bitte schauen Sie in die englische
Version.</p></div>
</div>
<div class="bottomlang">
<p><span>Verf<72>gbare Sprachen: </span><a href="../de/mod/core.html" title="Deutsch">&nbsp;de&nbsp;</a> |

View File

@@ -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">&nbsp;de&nbsp;</a> |

View File

@@ -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">&nbsp;de&nbsp;</a> |

View File

@@ -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">&nbsp;de&nbsp;</a> |

View File

@@ -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">&nbsp;de&nbsp;</a> |

View File

@@ -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">&nbsp;de&nbsp;</a> |

View File

@@ -80,6 +80,58 @@ of consuming threads only for connections with active processing</td></tr>
<li><a href="worker.html">The worker MPM</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AsyncRequestWorkerFactor" id="AsyncRequestWorkerFactor">AsyncRequestWorkerFactor</a> <a name="asyncrequestworkerfactor" id="asyncrequestworkerfactor">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Limit concurrent connections per process</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AsyncRequestWorkerFactor <var>factor</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>2</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>event</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.3.13 and later</td></tr>
</table>
<p>The event MPM handles some connections in an asynchronous way, where
request worker threads are only allocated for short periods of time as
needed, and other connections with one request worker thread reserved per
connection. This can lead to situations where all workers are tied up and
no worker thread is available to handle new work on established async
connections.</p>
<p>To mitigate this problem, the event MPM does two things: Firstly, it
limits the number of connections accepted per process, depending on the
number of idle request workers. Secondly, if all workers are busy, it will
close connections in keep-alive state even if the keep-alive timeout has
not expired. This allows the respective clients to reconnect to a
different process which may still have worker threads available.</p>
<p>This directive can be used to fine-tune the per-process connection
limit. A process will only accept new connections if the current number of
connections (not counting connections in the "closing" state) is lower
than:</p>
<p class="indent"><strong>
<code class="directive"><a href="../mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code> +
(<code class="directive">AsyncRequestWorkerFactor</code> *
<var>number of idle workers</var>)
</strong></p>
<p>This means the absolute maximum numbers of concurrent connections is:</p>
<p class="indent"><strong>
(<code class="directive">AsyncRequestWorkerFactor</code> + 1) *
<code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code>
</strong></p>
<p><code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> was called
<code class="directive">MaxClients</code> prior to version 2.3.13. The above value
shows that the old name did not accurately describe its meaning for the event MPM.</p>
<p><code class="directive">AsyncRequestWorkerFactor</code> can take non-integer
arguments, e.g "1.5".</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="how-it-works" id="how-it-works">How it Works</a></h2>
<p>This MPM tries to fix the 'keep alive problem' in HTTP. After a client
@@ -145,58 +197,6 @@ of consuming threads only for connections with active processing</td></tr>
with support for EPoll.</li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AsyncRequestWorkerFactor" id="AsyncRequestWorkerFactor">AsyncRequestWorkerFactor</a> <a name="asyncrequestworkerfactor" id="asyncrequestworkerfactor">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Limit concurrent connections per process</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AsyncRequestWorkerFactor <var>factor</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>2</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>event</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.3.13 and later</td></tr>
</table>
<p>The event MPM handles some connections in an asynchronous way, where
request worker threads are only allocated for short periods of time as
needed, and other connections with one request worker thread reserved per
connection. This can lead to situations where all workers are tied up and
no worker thread is available to handle new work on established async
connections.</p>
<p>To mitigate this problem, the event MPM does two things: Firstly, it
limits the number of connections accepted per process, depending on the
number of idle request workers. Secondly, if all workers are busy, it will
close connections in keep-alive state even if the keep-alive timeout has
not expired. This allows the respective clients to reconnect to a
different process which may still have worker threads available.</p>
<p>This directive can be used to fine-tune the per-process connection
limit. A process will only accept new connections if the current number of
connections (not counting connections in the "closing" state) is lower
than:</p>
<p class="indent"><strong>
<code class="directive"><a href="../mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code> +
(<code class="directive">AsyncRequestWorkerFactor</code> *
<var>number of idle workers</var>)
</strong></p>
<p>This means the absolute maximum numbers of concurrent connections is:</p>
<p class="indent"><strong>
(<code class="directive">AsyncRequestWorkerFactor</code> + 1) *
<code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code>
</strong></p>
<p><code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> was called
<code class="directive">MaxClients</code> prior to version 2.3.13. The above value
shows that the old name did not accurately describe its meaning for the event MPM.</p>
<p><code class="directive">AsyncRequestWorkerFactor</code> can take non-integer
arguments, e.g "1.5".</p>
</div>
</div>
<div class="bottomlang">

View File

@@ -82,6 +82,64 @@ mobiliser des threads que pour les connexions en cours de traitement</td></tr>
<li><a href="worker.html">Le MPM worker</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="asyncrequestworkerfactor" id="asyncrequestworkerfactor">Directive</a> <a name="AsyncRequestWorkerFactor" id="AsyncRequestWorkerFactor">AsyncRequestWorkerFactor</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Limite le nombre de connexions simultan<61>es par thread</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AsyncRequestWorkerFactor <var>facteur</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>2</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>event</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit<69>:</a></th><td>Disponible depuis la version 2.3.13</td></tr>
</table>
<p>Le MPM event g<>re certaines connexions de mani<6E>re asynchrone ;
dans ce cas, les threads traitant la requ<71>te sont allou<6F>s selon les
besoins et pour de courtes p<>riodes. Dans les autres cas, un
thread est r<>serv<72> par
connexion. Ceci peut conduire <20> des situations o<> tous les threads
sont satur<75>s et o<> aucun thread n'est capable d'effectuer de
nouvelles t<>ches pour les connexions asynchrones <20>tablies.</p>
<p>Pour minimiser les effets de ce probl<62>me, le MPM event utilise
deux m<>thodes : tout d'abord, il limite le nombre de connexions
simultan<61>es par thread en fonction du nombre de processus
inactifs. Ensuite, si tous les processus sont occup<75>s, il ferme des
connexions permanentes, m<>me si la limite de dur<75>e de la connexion
n'a pas <20>t<EFBFBD> atteinte. Ceci autorise les clients concern<72>s <20> se
reconnecter <20> un autre processus poss<73>dant encore des threads
disponibles.</p>
<p>Cette directive permet de personnaliser finement la limite du
nombre de connexions par thread. Un processus n'acceptera de
nouvelles connexions que si le nombre actuel de connexions (sans
compter les connexions <20> l'<27>tat "closing") est
inf<6E>rieur <20> :</p>
<p class="indent"><strong>
<code class="directive"><a href="../mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code> +
(<code class="directive">AsyncRequestWorkerFactor</code> *
<var>nombre de threads inactifs</var>)
</strong></p>
<p>En d'autres termes, le nombre maximum de connexions simultan<61>es
sera :</p>
<p class="indent"><strong>
(<code class="directive">AsyncRequestWorkerFactor</code> + 1) *
<code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code>
</strong></p>
<p>La directive <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> se nommait
<code class="directive">MaxClients</code> avant la version 2.3.13. La valeur
ci-dessus montre que cet ancien nom ne correspondait pas <20> sa
signification exacte pour le MPM event.</p>
<p>La directive <code class="directive">AsyncRequestWorkerFactor</code>
accepte des valeurs d'argument de type non entier, comme "1.5".</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="how-it-works" id="how-it-works">Comment tout cela fonctionne</a></h2>
<p>Ce MPM essaie de r<>soudre le 'probl<62>me keep alive' de HTTP.
@@ -159,64 +217,6 @@ mobiliser des threads que pour les connexions en cours de traitement</td></tr>
avec le support pour EPoll.</li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="asyncrequestworkerfactor" id="asyncrequestworkerfactor">Directive</a> <a name="AsyncRequestWorkerFactor" id="AsyncRequestWorkerFactor">AsyncRequestWorkerFactor</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Limite le nombre de connexions simultan<61>es par thread</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AsyncRequestWorkerFactor <var>facteur</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>2</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>event</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit<69>:</a></th><td>Disponible depuis la version 2.3.13</td></tr>
</table>
<p>Le MPM event g<>re certaines connexions de mani<6E>re asynchrone ;
dans ce cas, les threads traitant la requ<71>te sont allou<6F>s selon les
besoins et pour de courtes p<>riodes. Dans les autres cas, un
thread est r<>serv<72> par
connexion. Ceci peut conduire <20> des situations o<> tous les threads
sont satur<75>s et o<> aucun thread n'est capable d'effectuer de
nouvelles t<>ches pour les connexions asynchrones <20>tablies.</p>
<p>Pour minimiser les effets de ce probl<62>me, le MPM event utilise
deux m<>thodes : tout d'abord, il limite le nombre de connexions
simultan<61>es par thread en fonction du nombre de processus
inactifs. Ensuite, si tous les processus sont occup<75>s, il ferme des
connexions permanentes, m<>me si la limite de dur<75>e de la connexion
n'a pas <20>t<EFBFBD> atteinte. Ceci autorise les clients concern<72>s <20> se
reconnecter <20> un autre processus poss<73>dant encore des threads
disponibles.</p>
<p>Cette directive permet de personnaliser finement la limite du
nombre de connexions par thread. Un processus n'acceptera de
nouvelles connexions que si le nombre actuel de connexions (sans
compter les connexions <20> l'<27>tat "closing") est
inf<6E>rieur <20> :</p>
<p class="indent"><strong>
<code class="directive"><a href="../mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code> +
(<code class="directive">AsyncRequestWorkerFactor</code> *
<var>nombre de threads inactifs</var>)
</strong></p>
<p>En d'autres termes, le nombre maximum de connexions simultan<61>es
sera :</p>
<p class="indent"><strong>
(<code class="directive">AsyncRequestWorkerFactor</code> + 1) *
<code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code>
</strong></p>
<p>La directive <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> se nommait
<code class="directive">MaxClients</code> avant la version 2.3.13. La valeur
ci-dessus montre que cet ancien nom ne correspondait pas <20> 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">

View File

@@ -91,7 +91,6 @@ have been deprecated by the new authz refactoring. Please see
<li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li>
<li><code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code></li>
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="Allow" id="Allow">Allow</a> <a name="allow" id="allow">Directive</a></h2>
<table class="directive">
@@ -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">&nbsp;en&nbsp;</a> |

View File

@@ -96,7 +96,6 @@ ce module sont devenues obsol
<li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li>
<li><code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code></li>
</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="allow" id="allow">Directive</a> <a name="Allow" id="Allow">Allow</a></h2>
<table class="directive">
@@ -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">&nbsp;en&nbsp;</a> |

View File

@@ -92,7 +92,6 @@
<li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li>
<li><code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code></li>
</ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="Allow" id="Allow">Allow</a> <a name="allow" id="allow">ディレクティブ</a></h2>
<table class="directive">
@@ -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">&nbsp;en&nbsp;</a> |

View File

@@ -57,7 +57,6 @@
<li><a href="../howto/cgi.html">Dynamische Inhalte mit CGI</a></li>
<li><a href="../handler.html">Die Verwendung von Handlern</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Kommentare</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="Action" id="Action">Action</a>-<a name="action" id="action">Direktive</a></h2>
<table class="directive">
@@ -161,6 +160,7 @@
</code></p></div>
</div>
</div>
<div class="bottomlang">
<p><span>Verf<72>gbare Sprachen: </span><a href="../de/mod/mod_actions.html" title="Deutsch">&nbsp;de&nbsp;</a> |

View File

@@ -53,7 +53,6 @@
<li><a href="../howto/cgi.html">Dynamic Content with CGI</a></li>
<li><a href="../handler.html">Apache httpd's Handler Use</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="Action" id="Action">Action</a> <a name="action" id="action">Directive</a></h2>
<table class="directive">
@@ -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">&nbsp;de&nbsp;</a> |

View File

@@ -56,7 +56,6 @@ type de m
<li><a href="../handler.html">Utilisation des gestionnaires
d'Apache httpd</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="action" id="action">Directive</a> <a name="Action" id="Action">Action</a></h2>
<table class="directive">
@@ -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">&nbsp;de&nbsp;</a> |

View File

@@ -59,7 +59,6 @@ CGI スクリプトを実行する機能を提供</td></tr>
<li><a href="../howto/cgi.html">CGI による動的コンテンツ</a></li>
<li><a href="../handler.html">Apache のハンドラの使用</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="Action" id="Action">Action</a> <a name="action" id="action">ディレクティブ</a></h2>
<table class="directive">
@@ -169,6 +168,7 @@ Apache 2.1 で導入されました</td></tr>
</code></p></div>
</div>
</div>
<div class="bottomlang">
<p><span>翻訳済み言語: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |

View File

@@ -56,7 +56,6 @@
<li><a href="../howto/cgi.html">CGI<47><49> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD></a></li>
<li><a href="../handler.html"><3E><><EFBFBD><EFBFBD>ġ<EFBFBD><C4A1><EFBFBD><EFBFBD> <20>ڵ鷯 <20><><EFBFBD><EFBFBD></a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></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"><3E><><EFBFBD>þ<EFBFBD></a></h2>
<table class="directive">
@@ -158,6 +157,7 @@
</code></p></div>
</div>
</div>
<div class="bottomlang">
<p><span><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |

View File

@@ -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">&lt;VirtualHost&gt;</a></code>
section) they are processed in a particular order.</p>
<p>First, all Redirects are processed before Aliases are processed,
and therefore a request that matches a <code class="directive"><a href="#redirect">Redirect</a></code> or <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code> will never have Aliases
applied. Second, the Aliases and Redirects are processed in the order
they appear in the configuration files, with the first match taking
precedence.</p>
<p>For this reason, when two or more of these directives apply to the
same sub-path, you must list the most specific path first in order for
all the directives to have an effect. For example, the following
configuration will work as expected:</p>
<pre class="prettyprint lang-config">Alias /foo/bar /baz
Alias /foo /gaq</pre>
<p>But if the above two directives were reversed in order, the
<code>/foo</code> <code class="directive"><a href="#alias">Alias</a></code>
would always match before the <code>/foo/bar</code> <code class="directive"><a href="#alias">Alias</a></code>, so the latter directive would be
ignored.</p>
<p>When the <code class="directive"><a href="#alias">Alias</a></code>,
<code class="directive"><a href="#scriptalias">ScriptAlias</a></code> and
<code class="directive"><a href="#redirect">Redirect</a></code> directives are used
within a <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code>
or <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code>
section, these directives will take precedence over any globally
defined <code class="directive"><a href="#alias">Alias</a></code>,
<code class="directive"><a href="#scriptalias">ScriptAlias</a></code> and
<code class="directive"><a href="#redirect">Redirect</a></code> directives.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="Alias" id="Alias">Alias</a> <a name="alias" id="alias">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maps URLs to filesystem locations</td></tr>
@@ -597,6 +556,47 @@ and designates the target as a CGI script</td></tr>
details.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="order" id="order">Order of Processing</a></h2>
<p>Aliases and Redirects occurring in different contexts are processed
like other directives according to standard <a href="../sections.html#mergin">merging rules</a>. But when multiple
Aliases or Redirects occur in the same context (for example, in the
same <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>
section) they are processed in a particular order.</p>
<p>First, all Redirects are processed before Aliases are processed,
and therefore a request that matches a <code class="directive"><a href="#redirect">Redirect</a></code> or <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code> will never have Aliases
applied. Second, the Aliases and Redirects are processed in the order
they appear in the configuration files, with the first match taking
precedence.</p>
<p>For this reason, when two or more of these directives apply to the
same sub-path, you must list the most specific path first in order for
all the directives to have an effect. For example, the following
configuration will work as expected:</p>
<pre class="prettyprint lang-config">Alias /foo/bar /baz
Alias /foo /gaq</pre>
<p>But if the above two directives were reversed in order, the
<code>/foo</code> <code class="directive"><a href="#alias">Alias</a></code>
would always match before the <code>/foo/bar</code> <code class="directive"><a href="#alias">Alias</a></code>, so the latter directive would be
ignored.</p>
<p>When the <code class="directive"><a href="#alias">Alias</a></code>,
<code class="directive"><a href="#scriptalias">ScriptAlias</a></code> and
<code class="directive"><a href="#redirect">Redirect</a></code> directives are used
within a <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code>
or <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code>
section, these directives will take precedence over any globally
defined <code class="directive"><a href="#alias">Alias</a></code>,
<code class="directive"><a href="#scriptalias">ScriptAlias</a></code> and
<code class="directive"><a href="#redirect">Redirect</a></code> directives.</p>
</div>
</div>
<div class="bottomlang">

View File

@@ -89,46 +89,6 @@ redirection d'URL</td></tr>
syst<EFBFBD>me de fichiers</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="order" id="order">Chronologie du traitement</a></h2>
<p>Les alias et redirections apparaissant dans diff<66>rents contextes
sont trait<69>s comme les autres directives en respectant les <a href="../sections.html#mergin">r<>gles de fusion</a> standards. Par
contre, ils sont trait<69>s selon une chronologie particuli<6C>re
lorsqu'ils apparaissent dans le m<>me contexte (par exemple, dans la
m<>me section <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>).</p>
<p>Premi<6D>rement, toutes les redirections sont trait<69>es avant les
alias, et ainsi, une requ<71>te qui correspond <20> une directive
<code class="directive"><a href="#redirect">Redirect</a></code> ou <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code> ne se verra jamais
appliquer d'alias. Deuxi<78>mement, les alias et redirections sont
trait<69>s selon l'ordre dans lequel ils apparaissent dans le fichier
de configuration, seule la premi<6D>re correspondance <20>tant prise en
compte.</p>
<p>Ainsi, lorsqu'une ou plusieurs de ces directives s'appliquent au
m<>me sous-r<>pertoire, vous devez classer les chemins du plus pr<70>cis
au moins pr<70>cis afin que toutes les directives puissent
<20>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 <20>tait invers<72>, la directive <code class="directive"><a href="#alias">Alias</a></code> ayant pour argument
<code>/foo</code> serait toujours appliqu<71>e avant la directive
<code class="directive"><a href="#alias">Alias</a></code> ayant pour argument
<code>/foo/bar</code>, et cette derni<6E>re serait toujours
ignor<6F>e.</p>
<p>La d<>finition de directives <code class="directive"><a href="#alias">Alias</a></code>, <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> ou <code class="directive"><a href="#redirect">Redirect</a></code> au sein de sections
<code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> ou
<code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code>
l'emporte sur d'autres d<>finitions <20>ventuelles de ces m<>mes
directives au niveau de la configuration g<>n<EFBFBD>rale du serveur.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="alias" id="alias">Directive</a> <a name="Alias" id="Alias">Alias</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Met en correspondance des URLs avec des chemins du syst<73>me
@@ -607,6 +567,46 @@ comme un script CGI</td></tr>
d<>tails.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="order" id="order">Chronologie du traitement</a></h2>
<p>Les alias et redirections apparaissant dans diff<66>rents contextes
sont trait<69>s comme les autres directives en respectant les <a href="../sections.html#mergin">r<>gles de fusion</a> standards. Par
contre, ils sont trait<69>s selon une chronologie particuli<6C>re
lorsqu'ils apparaissent dans le m<>me contexte (par exemple, dans la
m<>me section <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>).</p>
<p>Premi<6D>rement, toutes les redirections sont trait<69>es avant les
alias, et ainsi, une requ<71>te qui correspond <20> une directive
<code class="directive"><a href="#redirect">Redirect</a></code> ou <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code> ne se verra jamais
appliquer d'alias. Deuxi<78>mement, les alias et redirections sont
trait<69>s selon l'ordre dans lequel ils apparaissent dans le fichier
de configuration, seule la premi<6D>re correspondance <20>tant prise en
compte.</p>
<p>Ainsi, lorsqu'une ou plusieurs de ces directives s'appliquent au
m<>me sous-r<>pertoire, vous devez classer les chemins du plus pr<70>cis
au moins pr<70>cis afin que toutes les directives puissent
<20>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 <20>tait invers<72>, la directive <code class="directive"><a href="#alias">Alias</a></code> ayant pour argument
<code>/foo</code> serait toujours appliqu<71>e avant la directive
<code class="directive"><a href="#alias">Alias</a></code> ayant pour argument
<code>/foo/bar</code>, et cette derni<6E>re serait toujours
ignor<6F>e.</p>
<p>La d<>finition de directives <code class="directive"><a href="#alias">Alias</a></code>, <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> ou <code class="directive"><a href="#redirect">Redirect</a></code> au sein de sections
<code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> ou
<code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code>
l'emporte sur d'autres d<>finitions <20>ventuelles de ces m<>mes
directives au niveau de la configuration g<>n<EFBFBD>rale du serveur.</p>
</div>
</div>
<div class="bottomlang">

View File

@@ -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">&lt;VirtualHost&gt;</a></code> セクションの中のように) 複数の Alias や Redirect が
同じコンテキスト中に現れた場合は決まった順番で処理されます。</p>
<p>まず、Alias の前にすべての Redirect が処理されます。ですから、<code class="directive"><a href="#redirect">Redirect</a></code> か <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code> にマッチするリクエストには
Alias は決して適用されません。次に、Alias と Redirect が設定ファイル中の
順番に適用され、最初にマッチしたものが優先されます。</p>
<p>ですから、二つ以上のディレクティブが同じパスに適用されるときは、
すべてのディレクティブの効果を得るためにはより詳しいパスを先に書く
必要があります。例えば、次の設定は期待通りの動作をします:</p>
<div class="example"><p><code>
Alias /foo/bar /baz<br />
Alias /foo /gaq
</code></p></div>
<p>しかし、上記の二つのディレクティブの順番が逆になると、
<code>/foo</code> <code class="directive"><a href="#alias">Alias</a></code> が
常に <code>/foo/bar</code> <code class="directive"><a href="#alias">Alias</a></code> より先にマッチしますので、後者は
決して適用されることはありません。</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="Alias" id="Alias">Alias</a> <a name="alias" id="alias">ディレクティブ</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>URL をファイルシステムの位置にマップする</td></tr>
@@ -382,6 +354,34 @@ CGI スクリプトに指定</td></tr>
ScriptAliasMatch ^/cgi-bin(.*) /usr/local/apache/cgi-bin$1
</code></p></div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="order" id="order">処理の順番</a></h2>
<p>様々なコンテキスト中での Alias や Redirect は他のディレクティブと
同じように標準の <a href="../sections.html#mergin">マージ規則</a> に
従って処理されます。ただし、(例えば <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> セクションの中のように) 複数の Alias や Redirect が
同じコンテキスト中に現れた場合は決まった順番で処理されます。</p>
<p>まず、Alias の前にすべての Redirect が処理されます。ですから、<code class="directive"><a href="#redirect">Redirect</a></code> か <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code> にマッチするリクエストには
Alias は決して適用されません。次に、Alias と Redirect が設定ファイル中の
順番に適用され、最初にマッチしたものが優先されます。</p>
<p>ですから、二つ以上のディレクティブが同じパスに適用されるときは、
すべてのディレクティブの効果を得るためにはより詳しいパスを先に書く
必要があります。例えば、次の設定は期待通りの動作をします:</p>
<div class="example"><p><code>
Alias /foo/bar /baz<br />
Alias /foo /gaq
</code></p></div>
<p>しかし、上記の二つのディレクティブの順番が逆になると、
<code>/foo</code> <code class="directive"><a href="#alias">Alias</a></code> が
常に <code>/foo/bar</code> <code class="directive"><a href="#alias">Alias</a></code> より先にマッチしますので、後者は
決して適用されることはありません。</p>
</div>
</div>
<div class="bottomlang">

View File

@@ -74,35 +74,6 @@
<li><a href="../urlmapping.html">URL<52><4C> <20><><EFBFBD>Ͻý<CFBD><C3BD>ۿ<EFBFBD> <20><><EFBFBD><EFBFBD></a></li>
</ul><ul class="seealso"><li><a href="#comments_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">ó<><C3B3> <20><><EFBFBD><EFBFBD></a></h2>
<p><3E><><EFBFBD><EFBFBD> <20>ٸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҿ<EFBFBD><D2BF><EFBFBD> Alias<61><73> Redirect<63><74> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> <20>ٸ<EFBFBD> <20><><EFBFBD>þ<EFBFBD><C3BE><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ǥ<><C7A5> <a href="../sections.html#mergin"><3E><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD></a><3E><>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD>Ѵ<EFBFBD>. <20>׷<EFBFBD><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҿ<EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> <20><><EFBFBD>ǿ<EFBFBD>)
Alias<EFBFBD><EFBFBD> Redirect<63><74> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> <20>Ʒ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD>Ѵ<EFBFBD>.</p>
<p><3E><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Redirect<63><74> ó<><C3B3><EFBFBD><EFBFBD> <20><> Alias<61><73> ó<><C3B3><EFBFBD>Ѵ<EFBFBD>. <20>׷<EFBFBD><D7B7><EFBFBD>
<code class="directive"><a href="#redirect">Redirect</a></code><3E><> <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code><3E><> <20>ش<EFBFBD><D8B4>ϴ<EFBFBD> <20><>û<EFBFBD><C3BB>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Alias<61><73><EFBFBD><EFBFBD> <20>ʴ´<CAB4>. <20>׸<EFBFBD><D7B8><EFBFBD> Alias<61><73> Redirect<63><74> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD>
ù<EFBFBD><EFBFBD>°<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.</p>
<p><3E>׷<EFBFBD><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>þ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD> <20>ش<EFBFBD><D8B4>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>þ <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>θ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD> <20>Ѵ<EFBFBD>.
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ǵ<EFBFBD><C7B5>Ѵ<EFBFBD><D1B4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>:</p>
<div class="example"><p><code>
Alias /foo/bar /baz<br />
Alias /foo /gaq
</code></p></div>
<p><3E>׷<EFBFBD><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>þ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٲٸ<D9B2> <code>/foo/bar</code>
<code class="directive"><a href="#alias">Alias</a></code> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<code>/foo</code> <code class="directive"><a href="#alias">Alias</a></code><3E><>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϹǷ<EFBFBD> <20>׻<EFBFBD> <20>ι<EFBFBD>° <20><><EFBFBD>þ <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.</p>
</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"><3E><><EFBFBD>þ<EFBFBD></a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description"><3E><><EFBFBD><EFBFBD>:</a></th><td>URL<52><4C> Ư<><C6AF> <20><><EFBFBD>Ͻý<CFBD><C3BD><EFBFBD> <20><><EFBFBD>ҷ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD></td></tr>
@@ -349,6 +320,35 @@ Alias /foo /gaq
ScriptAliasMatch ^/cgi-bin(.*) /usr/local/apache/cgi-bin$1
</code></p></div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="order" id="order">ó<><C3B3> <20><><EFBFBD><EFBFBD></a></h2>
<p><3E><><EFBFBD><EFBFBD> <20>ٸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҿ<EFBFBD><D2BF><EFBFBD> Alias<61><73> Redirect<63><74> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> <20>ٸ<EFBFBD> <20><><EFBFBD>þ<EFBFBD><C3BE><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ǥ<><C7A5> <a href="../sections.html#mergin"><3E><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD></a><3E><>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD>Ѵ<EFBFBD>. <20>׷<EFBFBD><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҿ<EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> <20><><EFBFBD>ǿ<EFBFBD>)
Alias<EFBFBD><EFBFBD> Redirect<63><74> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> <20>Ʒ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD>Ѵ<EFBFBD>.</p>
<p><3E><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Redirect<63><74> ó<><C3B3><EFBFBD><EFBFBD> <20><> Alias<61><73> ó<><C3B3><EFBFBD>Ѵ<EFBFBD>. <20>׷<EFBFBD><D7B7><EFBFBD>
<code class="directive"><a href="#redirect">Redirect</a></code><3E><> <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code><3E><> <20>ش<EFBFBD><D8B4>ϴ<EFBFBD> <20><>û<EFBFBD><C3BB>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Alias<61><73><EFBFBD><EFBFBD> <20>ʴ´<CAB4>. <20>׸<EFBFBD><D7B8><EFBFBD> Alias<61><73> Redirect<63><74> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD>
ù<EFBFBD><EFBFBD>°<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.</p>
<p><3E>׷<EFBFBD><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>þ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD> <20>ش<EFBFBD><D8B4>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>þ <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>θ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD> <20>Ѵ<EFBFBD>.
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ǵ<EFBFBD><C7B5>Ѵ<EFBFBD><D1B4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>:</p>
<div class="example"><p><code>
Alias /foo/bar /baz<br />
Alias /foo /gaq
</code></p></div>
<p><3E>׷<EFBFBD><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>þ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٲٸ<D9B2> <code>/foo/bar</code>
<code class="directive"><a href="#alias">Alias</a></code> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<code>/foo</code> <code class="directive"><a href="#alias">Alias</a></code><3E><>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϹǷ<EFBFBD> <20>׻<EFBFBD> <20>ι<EFBFBD>° <20><><EFBFBD>þ <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.</p>
</div>
</div>
<div class="bottomlang">

View File

@@ -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">&lt;VirtualHost&gt;</a></code> bölümünde) çok fazla <code class="directive"><a href="#alias">Alias</a></code> ve <code class="directive"><a href="#redirect">Redirect</a></code> varsa bunlar belli bir
sıraya göre işleme sokulurlar.</p>
<p>İlk adımda, <code class="directive"><a href="#alias">Alias</a></code>lardan önce
bütün <code class="directive"><a href="#redirect">Redirect</a></code> yönergeleri
işleme sokulur. Bu bakımdan bir <code class="directive"><a href="#redirect">Redirect</a></code> veya <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code> ile eşleşen bir istek için
hiçbir <code class="directive"><a href="#alias">Alias</a></code>
uygulanmayacaktır. İkinci adımda yapılandırma dosyasında yer aldıkları
sıraya göre <code class="directive"><a href="#redirect">Redirect</a></code> ve
<code class="directive"><a href="#alias">Alias</a></code> yönergeleri işleme
sokulurlar, dolayısıyla ilk eşleşme öncelikli olmuş olur.</p>
<p>İlk eşleşmenin öncelikli olması sebebiyle, bu yönergelerin birden
fazlası aynı alt yola uygulandığı takdirde, tüm yönergelerin etkili
olabilmesi için en uzun yolu sıralamada en öne almalısınız. Örneğin
aşağıdaki yapılandırma beklendiği gibi çalışacaktır:</p>
<div class="example"><p><code>
Alias /foo/bar /baz<br />
Alias /foo /gaz
</code></p></div>
<p>Ama yukarıdaki iki satır ters sırada yerleştirilmiş olsaydı,
<code>/foo</code> rumuzu daima <code>/foo/bar</code> rumuzundan önce
eşleşecek, dolayısıyla ikinci yönerge yok sayılacaktı.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="Alias" id="Alias">Alias</a> <a name="alias" id="alias">Yönergesi</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>URLleri 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">&lt;VirtualHost&gt;</a></code> bölümünde) çok fazla <code class="directive"><a href="#alias">Alias</a></code> ve <code class="directive"><a href="#redirect">Redirect</a></code> varsa bunlar belli bir
sıraya göre işleme sokulurlar.</p>
<p>İlk adımda, <code class="directive"><a href="#alias">Alias</a></code>lardan önce
bütün <code class="directive"><a href="#redirect">Redirect</a></code> yönergeleri
işleme sokulur. Bu bakımdan bir <code class="directive"><a href="#redirect">Redirect</a></code> veya <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code> ile eşleşen bir istek için
hiçbir <code class="directive"><a href="#alias">Alias</a></code>
uygulanmayacaktır. İkinci adımda yapılandırma dosyasında yer aldıkları
sıraya göre <code class="directive"><a href="#redirect">Redirect</a></code> ve
<code class="directive"><a href="#alias">Alias</a></code> yönergeleri işleme
sokulurlar, dolayısıyla ilk eşleşme öncelikli olmuş olur.</p>
<p>İlk eşleşmenin öncelikli olması sebebiyle, bu yönergelerin birden
fazlası aynı alt yola uygulandığı takdirde, tüm yönergelerin etkili
olabilmesi için en uzun yolu sıralamada en öne almalısınız. Örneğin
aşağıdaki yapılandırma beklendiği gibi çalışacaktır:</p>
<div class="example"><p><code>
Alias /foo/bar /baz<br />
Alias /foo /gaz
</code></p></div>
<p>Ama yukarıdaki iki satır ters sırada yerleştirilmiş olsaydı,
<code>/foo</code> rumuzu daima <code>/foo/bar</code> rumuzundan önce
eşleşecek, dolayısıyla ikinci yönerge yok sayılacaktı.</p>
</div>
</div>
<div class="bottomlang">
<p><span>Mevcut Diller: </span><a href="../en/mod/mod_alias.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -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">&nbsp;en&nbsp;</a></p>

View File

@@ -47,7 +47,6 @@ used on an server. The most common configuration would be:</p>
<li><img alt="" src="../images/down.gif" /> <a href="#allowmethods">AllowMethods</a></li>
</ul>
<ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AllowMethods" id="AllowMethods">AllowMethods</a> <a name="allowmethods" id="allowmethods">Directive</a></h2>
<table class="directive">
@@ -80,6 +79,7 @@ kludgy implementation of <code class="directive"><a href="../mod/core.html#limit
<code class="directive"><a href="../mod/core.html#limitexcept">LimitExcept</a></code>.</p>
</div>
</div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/mod/mod_allowmethods.html" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -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'impl<70>mentation "bricol<6F>e" des directives <code class="directive"><a href="../mod/core.html#limit">Limit</a></code> et <code class="directive"><a href="../mod/core.html#limitexcept">LimitExcept</a></code>.</p>
</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_allowmethods.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -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">&nbsp;en&nbsp;</a> |

View File

@@ -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'acc<63>s.</div>
</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_auth_basic.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -66,7 +66,6 @@
<li><code class="directive"><a href="../mod/mod_authz_core.html#&lt;satisfyone&gt;">&lt;SatisfyOne&gt;</a></code></li>
<li><a href="../howto/auth.html">Authentication howto</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AuthBasicAuthoritative" id="AuthBasicAuthoritative">AuthBasicAuthoritative</a> <a name="authbasicauthoritative" id="authbasicauthoritative">ディレクティブ</a></h2>
<table class="directive">
@@ -163,6 +162,7 @@ Digest Authentication was in force instead of Basic Authentication.
</table><p>このディレクティブの解説文書は
まだ翻訳されていません。英語版をご覧ください。
</p></div>
</div>
<div class="bottomlang">
<p><span>翻訳済み言語: </span><a href="../en/mod/mod_auth_basic.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -55,7 +55,6 @@
<li><code class="directive"><a href="../mod/core.html#authname">AuthName</a></code></li>
<li><code class="directive"><a href="../mod/core.html#authtype">AuthType</a></code></li>
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AuthBasicAuthoritative" id="AuthBasicAuthoritative">AuthBasicAuthoritative</a> <a name="authbasicauthoritative" id="authbasicauthoritative"><3E><><EFBFBD>þ<EFBFBD></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><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: </span><a href="../en/mod/mod_auth_basic.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -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">&lt;Location "/private/"&gt;
AuthType Digest
AuthName "private area"
AuthDigestDomain "/private/" "http://mirror.my.dom/private2/"
AuthDigestProvider file
AuthUserFile "/web/auth/.digest_pw"
Require valid-user
&lt;/Location&gt;</pre>
</div>
<div class="note"><h3>Note</h3>
<p>Digest authentication was intended to be more secure than basic
authentication, but no longer fulfills that design goal. A
man-in-the-middle attacker can trivially force the browser to downgrade
to basic authentication. And even a passive eavesdropper can brute-force
the password using today's graphics hardware, because the hashing
algorithm used by digest authentication is too fast. Another problem is
that the storage of the passwords on the server is insecure. The contents
of a stolen htdigest file can be used directly for digest authentication.
Therefore using <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> to encrypt the whole connection is
strongly recommended.</p>
<p><code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code> only works properly on platforms
where APR supports shared memory.</p>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AuthDigestAlgorithm" id="AuthDigestAlgorithm">AuthDigestAlgorithm</a> <a name="authdigestalgorithm" id="authdigestalgorithm">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Selects the algorithm used to calculate the challenge and
@@ -298,6 +256,48 @@ AuthDigestShmemSize 1024K
AuthDigestShmemSize 1M</pre>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="using" id="using">Using Digest Authentication</a></h2>
<p>To use MD5 Digest authentication, simply
change the normal <code>AuthType Basic</code> and
<code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>
to <code>AuthType Digest</code> and
<code class="directive"><a href="#authdigestprovider">AuthDigestProvider</a></code>,
when setting up authentication, then add a
<code class="directive"><a href="#authdigestdomain">AuthDigestDomain</a></code> directive containing at least the root
URI(s) for this protection space.</p>
<p>Appropriate user (text) files can be created using the
<code class="program"><a href="../programs/htdigest.html">htdigest</a></code> tool.</p>
<div class="example"><h3>Example:</h3><pre class="prettyprint lang-config">&lt;Location "/private/"&gt;
AuthType Digest
AuthName "private area"
AuthDigestDomain "/private/" "http://mirror.my.dom/private2/"
AuthDigestProvider file
AuthUserFile "/web/auth/.digest_pw"
Require valid-user
&lt;/Location&gt;</pre>
</div>
<div class="note"><h3>Note</h3>
<p>Digest authentication was intended to be more secure than basic
authentication, but no longer fulfills that design goal. A
man-in-the-middle attacker can trivially force the browser to downgrade
to basic authentication. And even a passive eavesdropper can brute-force
the password using today's graphics hardware, because the hashing
algorithm used by digest authentication is too fast. Another problem is
that the storage of the passwords on the server is insecure. The contents
of a stolen htdigest file can be used directly for digest authentication.
Therefore using <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> to encrypt the whole connection is
strongly recommended.</p>
<p><code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code> only works properly on platforms
where APR supports shared memory.</p>
</div>
</div>
</div>
<div class="bottomlang">

View File

@@ -74,48 +74,6 @@ condens
l'authentification</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="using" id="using">Utilisation de l'authentification <20> base de
condens<EFBFBD>s</a></h2>
<p>Pour utiliser l'authentification <20> base de condens<6E>s MD5, vous
devez simplement remplacer <code>AuthType Basic</code> et <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> respectivement
par <code>AuthType Digest</code> et <code class="directive"><a href="#authdigestprovider">AuthDigestProvider</a></code> lorsque vous
configurez l'authentification, puis ajouter une directive <code class="directive"><a href="#authdigestdomain">AuthDigestDomain</a></code> contenant au
moins la(les) URI(s) racine(s) de la zone <20> prot<6F>ger.</p>
<p>On peut cr<63>er les fichiers utilisateur appropri<72>s (au format
texte) <20> l'aide de l'outil <code class="program"><a href="../programs/htdigest.html">htdigest</a></code>.</p>
<div class="example"><h3>Exemple :</h3><pre class="prettyprint lang-config">&lt;Location /private/&gt;
AuthType Digest
AuthName "private area"
AuthDigestDomain /private/ http://mirror.my.dom/private2/
AuthDigestProvider file
AuthUserFile /web/auth/.digest_pw
Require valid-user
&lt;/Location&gt;</pre>
</div>
<div class="note"><h3>Note</h3>
<p>L'authentification <20> base de condens<6E> a <20>t<EFBFBD> con<6F>ue pour am<61>liorer
la s<>curit<69> par rapport <20> l'authentification basique, mais il
s'av<61>re que ce but n'a pas <20>t<EFBFBD> atteint. Un attaquant de type
"man-in-the-middle" peut facilement forcer le navigateur <20> revenir <20>
une authentification basique. M<>me une oreille indiscr<63>te passive
peut retrouver le mot de passe par force brute avec les moyens
modernes, car l'algorithme de hashage utilis<69> par l'authentification
<20> base de condens<6E> est trop rapide. Autre probl<62>me, le stockage des
mots de passe sur le serveur n'est pas s<>r. Le contenu d'un fichier
htdigest vol<6F> peut <20>tre utilis<69> directement pour l'authentification
<20> base de condens<6E>. Il est donc fortement recommand<6E> d'utiliser
<code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> pour chiffrer la connexion.</p>
<p><code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code> ne fonctionne correctement que
sur les plates-formes o<> APR supporte la m<>moire partag<61>e.</p>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="authdigestalgorithm" id="authdigestalgorithm">Directive</a> <a name="AuthDigestAlgorithm" id="AuthDigestAlgorithm">AuthDigestAlgorithm</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>S<>lectionne l'algorithme utilis<69> pour calculer les
@@ -320,6 +278,48 @@ AuthDigestShmemSize 1024K
AuthDigestShmemSize 1M</pre>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="using" id="using">Utilisation de l'authentification <20> base de
condens<EFBFBD>s</a></h2>
<p>Pour utiliser l'authentification <20> base de condens<6E>s MD5, vous
devez simplement remplacer <code>AuthType Basic</code> et <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> respectivement
par <code>AuthType Digest</code> et <code class="directive"><a href="#authdigestprovider">AuthDigestProvider</a></code> lorsque vous
configurez l'authentification, puis ajouter une directive <code class="directive"><a href="#authdigestdomain">AuthDigestDomain</a></code> contenant au
moins la(les) URI(s) racine(s) de la zone <20> prot<6F>ger.</p>
<p>On peut cr<63>er les fichiers utilisateur appropri<72>s (au format
texte) <20> l'aide de l'outil <code class="program"><a href="../programs/htdigest.html">htdigest</a></code>.</p>
<div class="example"><h3>Exemple :</h3><pre class="prettyprint lang-config">&lt;Location /private/&gt;
AuthType Digest
AuthName "private area"
AuthDigestDomain /private/ http://mirror.my.dom/private2/
AuthDigestProvider file
AuthUserFile /web/auth/.digest_pw
Require valid-user
&lt;/Location&gt;</pre>
</div>
<div class="note"><h3>Note</h3>
<p>L'authentification <20> base de condens<6E> a <20>t<EFBFBD> con<6F>ue pour am<61>liorer
la s<>curit<69> par rapport <20> l'authentification basique, mais il
s'av<61>re que ce but n'a pas <20>t<EFBFBD> atteint. Un attaquant de type
"man-in-the-middle" peut facilement forcer le navigateur <20> revenir <20>
une authentification basique. M<>me une oreille indiscr<63>te passive
peut retrouver le mot de passe par force brute avec les moyens
modernes, car l'algorithme de hashage utilis<69> par l'authentification
<20> base de condens<6E> est trop rapide. Autre probl<62>me, le stockage des
mots de passe sur le serveur n'est pas s<>r. Le contenu d'un fichier
htdigest vol<6F> peut <20>tre utilis<69> directement pour l'authentification
<20> base de condens<6E>. Il est donc fortement recommand<6E> d'utiliser
<code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> pour chiffrer la connexion.</p>
<p><code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code> ne fonctionne correctement que
sur les plates-formes o<> APR supporte la m<>moire partag<61>e.</p>
</div>
</div>
</div>
<div class="bottomlang">

View File

@@ -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 <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD></a></h2>
<p>MD5 Digest authentication<6F><6E> <20>ſ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD>.
<code>AuthType Basic</code><3E><> <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> <20><><EFBFBD><EFBFBD>
<code>AuthType Digest</code><3E><> <code class="directive"><a href="#authdigestprovider">AuthDigestProvider</a></code><3E><>
<20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD>. <20>׸<EFBFBD><D7B8><EFBFBD> <20>ּ<EFBFBD><D6BC><EFBFBD> <20><>ȣ<EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⺻ URI<52><49> <code class="directive"><a href="#authdigestdomain">AuthDigestDomain</a></code> <20><><EFBFBD>þ <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.</p>
<p><a href="../programs/htdigest.html">htdigest</a> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD>.</p>
<div class="example"><h3><3E><><EFBFBD><EFBFBD>:</h3><p><code>
&lt;Location /private/&gt;<br />
<span class="indent">
AuthType Digest<br />
AuthName "private area"<br />
AuthDigestDomain /private/ http://mirror.my.dom/private2/<br />
<br />
AuthDigestProvider file<br />
AuthUserFile /web/auth/.digest_pw<br />
Require valid-user<br />
</span>
&lt;/Location&gt;
</code></p></div>
<div class="note"><h3><3E><><EFBFBD><EFBFBD></h3>
<p>Digest authentication<6F><6E> Basic authentication<6F><6E><EFBFBD><EFBFBD> <20><>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD> <20>Ѵ<EFBFBD>. 2002<30><32> 11<31><31> <20><><EFBFBD><EFBFBD> digest
authentication<6F><6E> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <a href="http://www.w3.org/Amaya/">Amaya</a>, <a href="http://konqueror.kde.org/">Konqueror</a>, (Windows<77><73><EFBFBD><EFBFBD>
<20><><EFBFBD>ǹ<EFBFBD><C7B9>ڿ<EFBFBD><DABF><EFBFBD> <20>Բ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> <20>ȵ<EFBFBD><C8B5><EFBFBD><EFBFBD><EFBFBD> - <20>ذ<EFBFBD><D8B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ʒ<EFBFBD> "<a href="#msie">MS Internet Explorer <20><><EFBFBD><EFBFBD> <20>ذ<EFBFBD><D8B0>ϱ<EFBFBD></a>"<22><> <20><><EFBFBD><EFBFBD>)
Mac OS X<><58> Windows<77><73> <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> <20><><EFBFBD><EFBFBD> 7, <a href="http://www.opera.com/">Opera</a>,
<a href="http://www.apple.com/safari/">Safari</a> <20><><EFBFBD><EFBFBD> <20>ִ<EFBFBD>.
<a href="http://lynx.isc.org/">lynx</a><3E><> digest authentication<6F><6E>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <strong><3E>ʴ´<CAB4></strong>. digest authentication<6F><6E>
basic authentication <20><>ŭ <20>θ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʾұ⶧<D2B1><E2B6A7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><ECBFA1> <20><><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD>
<20>Ѵ<EFBFBD>.</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 <20><><EFBFBD><EFBFBD> <20>ذ<EFBFBD><D8B0>ϱ<EFBFBD></a></h2>
<p><3E><><EFBFBD><EFBFBD> Windows<77><73> Internet Explorer<65><72> Digest authentication
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ǹ<EFBFBD><C7B9>ڿ<EFBFBD><DABF><EFBFBD> <20>ִ<EFBFBD> <code>GET</code> <20><>û<EFBFBD><C3BB> RFC<46><43> <20>ٸ<EFBFBD><D9B8><EFBFBD>
ó<><C3B3><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD>. <20><EFBFBD><EEB0A1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ذ<EFBFBD><D8B0><EFBFBD> <20><>
<20>ִ<EFBFBD>.</p>
<p>
ù<><C3B9>°<EFBFBD><C2B0> <20><><EFBFBD>α׷<CEB1><D7B7><EFBFBD> <20>ڷḦ <20>Ѱ<EFBFBD><D1B0>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD> <code>GET</code>
<20><><EFBFBD><EFBFBD> <code>POST</code> <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̴<EFBFBD>. <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>ϴٸ<CFB4> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ذ<EFBFBD>å<EFBFBD>̴<EFBFBD>.
</p>
<p><3E><>, <20><><EFBFBD><EFBFBD>ġ 2.0.51<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <code>AuthDigestEnableQueryStringHack</code>
ȯ<><EFBFBD><E6BAAF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ذ<EFBFBD><D8B0>Ѵ<EFBFBD>. <20><>û<EFBFBD><C3BB>
<code>AuthDigestEnableQueryStringHack</code><3E><> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD>
<20><><EFBFBD><EFBFBD>ġ<EFBFBD><C4A1> MSIE <20><><EFBFBD>׸<EFBFBD> <20><><EFBFBD>ذ<EFBFBD> <20><>ġ<EFBFBD><C4A1> <20><><EFBFBD>ϰ<EFBFBD> <20><>û URI<52><49> digest
<20>񱳿<EFBFBD><F1B1B3BF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>. <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.</p>
<div class="example"><h3>MSIE<49><45><EFBFBD><EFBFBD> Digest Authentication <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>:</h3><p><code>
BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
</code></p></div>
<p><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȯ<><EFBFBD><E6BAAF> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ڼ<EFBFBD><DABC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <code class="directive"><a href="../mod/mod_setenvif.html#browsermatch">BrowserMatch</a></code> <20><><EFBFBD>þ
<20><><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD>.</p>
</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"><3E><><EFBFBD>þ<EFBFBD></a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description"><3E><><EFBFBD><EFBFBD>:</a></th><td>digest authentication<6F><6E><EFBFBD><EFBFBD> challenge<67><65> response
@@ -315,6 +246,75 @@ URI
</code></p></div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="using" id="using">Digest Authentication <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD></a></h2>
<p>MD5 Digest authentication<6F><6E> <20>ſ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD>.
<code>AuthType Basic</code><3E><> <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> <20><><EFBFBD><EFBFBD>
<code>AuthType Digest</code><3E><> <code class="directive"><a href="#authdigestprovider">AuthDigestProvider</a></code><3E><>
<20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD>. <20>׸<EFBFBD><D7B8><EFBFBD> <20>ּ<EFBFBD><D6BC><EFBFBD> <20><>ȣ<EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⺻ URI<52><49> <code class="directive"><a href="#authdigestdomain">AuthDigestDomain</a></code> <20><><EFBFBD>þ <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.</p>
<p><a href="../programs/htdigest.html">htdigest</a> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD>.</p>
<div class="example"><h3><3E><><EFBFBD><EFBFBD>:</h3><p><code>
&lt;Location /private/&gt;<br />
<span class="indent">
AuthType Digest<br />
AuthName "private area"<br />
AuthDigestDomain /private/ http://mirror.my.dom/private2/<br />
<br />
AuthDigestProvider file<br />
AuthUserFile /web/auth/.digest_pw<br />
Require valid-user<br />
</span>
&lt;/Location&gt;
</code></p></div>
<div class="note"><h3><3E><><EFBFBD><EFBFBD></h3>
<p>Digest authentication<6F><6E> Basic authentication<6F><6E><EFBFBD><EFBFBD> <20><>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD> <20>Ѵ<EFBFBD>. 2002<30><32> 11<31><31> <20><><EFBFBD><EFBFBD> digest
authentication<6F><6E> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <a href="http://www.w3.org/Amaya/">Amaya</a>, <a href="http://konqueror.kde.org/">Konqueror</a>, (Windows<77><73><EFBFBD><EFBFBD>
<20><><EFBFBD>ǹ<EFBFBD><C7B9>ڿ<EFBFBD><DABF><EFBFBD> <20>Բ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> <20>ȵ<EFBFBD><C8B5><EFBFBD><EFBFBD><EFBFBD> - <20>ذ<EFBFBD><D8B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ʒ<EFBFBD> "<a href="#msie">MS Internet Explorer <20><><EFBFBD><EFBFBD> <20>ذ<EFBFBD><D8B0>ϱ<EFBFBD></a>"<22><> <20><><EFBFBD><EFBFBD>)
Mac OS X<><58> Windows<77><73> <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> <20><><EFBFBD><EFBFBD> 7, <a href="http://www.opera.com/">Opera</a>,
<a href="http://www.apple.com/safari/">Safari</a> <20><><EFBFBD><EFBFBD> <20>ִ<EFBFBD>.
<a href="http://lynx.isc.org/">lynx</a><3E><> digest authentication<6F><6E>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <strong><3E>ʴ´<CAB4></strong>. digest authentication<6F><6E>
basic authentication <20><>ŭ <20>θ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʾұ⶧<D2B1><E2B6A7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><ECBFA1> <20><><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD>
<20>Ѵ<EFBFBD>.</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 <20><><EFBFBD><EFBFBD> <20>ذ<EFBFBD><D8B0>ϱ<EFBFBD></a></h2>
<p><3E><><EFBFBD><EFBFBD> Windows<77><73> Internet Explorer<65><72> Digest authentication
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ǹ<EFBFBD><C7B9>ڿ<EFBFBD><DABF><EFBFBD> <20>ִ<EFBFBD> <code>GET</code> <20><>û<EFBFBD><C3BB> RFC<46><43> <20>ٸ<EFBFBD><D9B8><EFBFBD>
ó<><C3B3><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD>. <20><EFBFBD><EEB0A1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ذ<EFBFBD><D8B0><EFBFBD> <20><>
<20>ִ<EFBFBD>.</p>
<p>
ù<><C3B9>°<EFBFBD><C2B0> <20><><EFBFBD>α׷<CEB1><D7B7><EFBFBD> <20>ڷḦ <20>Ѱ<EFBFBD><D1B0>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD> <code>GET</code>
<20><><EFBFBD><EFBFBD> <code>POST</code> <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̴<EFBFBD>. <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>ϴٸ<CFB4> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ذ<EFBFBD>å<EFBFBD>̴<EFBFBD>.
</p>
<p><3E><>, <20><><EFBFBD><EFBFBD>ġ 2.0.51<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <code>AuthDigestEnableQueryStringHack</code>
ȯ<><EFBFBD><E6BAAF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ذ<EFBFBD><D8B0>Ѵ<EFBFBD>. <20><>û<EFBFBD><C3BB>
<code>AuthDigestEnableQueryStringHack</code><3E><> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD>
<20><><EFBFBD><EFBFBD>ġ<EFBFBD><C4A1> MSIE <20><><EFBFBD>׸<EFBFBD> <20><><EFBFBD>ذ<EFBFBD> <20><>ġ<EFBFBD><C4A1> <20><><EFBFBD>ϰ<EFBFBD> <20><>û URI<52><49> digest
<20>񱳿<EFBFBD><F1B1B3BF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>. <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.</p>
<div class="example"><h3>MSIE<49><45><EFBFBD><EFBFBD> Digest Authentication <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>:</h3><p><code>
BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
</code></p></div>
<p><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȯ<><EFBFBD><E6BAAF> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ڼ<EFBFBD><DABC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <code class="directive"><a href="../mod/mod_setenvif.html#browsermatch">BrowserMatch</a></code> <20><><EFBFBD>þ
<20><><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD>.</p>
</div>
</div>
<div class="bottomlang">
<p><span><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: </span><a href="../en/mod/mod_auth_digest.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -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">&lt;form method="POST" action="/dologin.html"&gt;
Username: &lt;input type="text" name="httpd_username" value="" /&gt;
Password: &lt;input type="password" name="httpd_password" value="" /&gt;
&lt;input type="submit" name="login" value="Login" /&gt;
&lt;/form&gt;</pre>
</div>
<p>The part that does the actual login is handled by the <var>form-login-handler</var>.
The action of the form should point at this handler, which is configured within
Apache httpd as follows:</p>
<div class="example"><h3>Form login handler example</h3><pre class="prettyprint lang-config">&lt;Location "/dologin.html"&gt;
SetHandler form-login-handler
AuthFormLoginRequiredLocation "http://example.com/login.html"
AuthFormLoginSuccessLocation "http://example.com/success.html"
AuthFormProvider file
AuthUserFile "conf/passwd"
AuthType form
AuthName realm
Session On
SessionCookieName session path=/
SessionCryptoPassphrase secret
&lt;/Location&gt;</pre>
</div>
<p>The URLs specified by the
<code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code> directive will typically
point to a page explaining to the user that their login attempt was unsuccessful, and they
should try again. The <code class="directive"><a href="#authformloginsuccesslocation">AuthFormLoginSuccessLocation</a></code>
directive specifies the URL the user should be redirected to upon successful login.</p>
<p>Alternatively, the URL to redirect the user to on success can be embedded within the login
form, as in the example below. As a result, the same <var>form-login-handler</var> can be
reused for different areas of a website.</p>
<div class="example"><h3>Example login form with location</h3><pre class="prettyprint lang-html">&lt;form method="POST" action="/dologin.html"&gt;
Username: &lt;input type="text" name="httpd_username" value="" /&gt;
Password: &lt;input type="password" name="httpd_password" value="" /&gt;
&lt;input type="submit" name="login" value="Login" /&gt;
&lt;input type="hidden" name="httpd_location" value="http://example.com/success.html" /&gt;
&lt;/form&gt;</pre>
</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="inline" id="inline">Inline Login</a></h2>
<div class="warning"><h3>Warning</h3>
<p>A risk exists that under certain circumstances, the login form configured
using inline login may be submitted more than once, revealing login credentials to
the application running underneath. The administrator must ensure that the underlying
application is properly secured to prevent abuse. If in doubt, use the
standalone login configuration.</p>
</div>
<p>As an alternative to having a dedicated login page for a website, it is possible to
configure <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> to authenticate users inline, without being
redirected to another page. This allows the state of the current page to be preserved
during the login attempt. This can be useful in a situation where a time limited
session is in force, and the session times out in the middle of the user request. The
user can be re-authenticated in place, and they can continue where they left off.</p>
<p>If a non-authenticated user attempts to access a page protected by
<code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> that isn't configured with a
<code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code> directive,
a <var>HTTP_UNAUTHORIZED</var> status code is returned to the browser indicating to the user
that they are not authorized to view the page.</p>
<p>To configure inline authentication, the administrator overrides the error document
returned by the <var>HTTP_UNAUTHORIZED</var> status code with a custom error document
containing the login form, as follows:</p>
<div class="example"><h3>Basic inline example</h3><pre class="prettyprint lang-config">AuthFormProvider file
ErrorDocument 401 "/login.shtml"
AuthUserFile "conf/passwd"
AuthType form
AuthName realm
AuthFormLoginRequiredLocation "http://example.com/login.html"
Session On
SessionCookieName session path=/
SessionCryptoPassphrase secret</pre>
</div>
<p>The error document page should contain a login form with an empty action property,
as per the example below. This has the effect of submitting the form to
the original protected URL, without the page having to know what that
URL is.</p>
<div class="example"><h3>Example inline login form</h3><pre class="prettyprint lang-html">&lt;form method="POST" <strong>action=""</strong>&gt;
Username: &lt;input type="text" name="httpd_username" value="" /&gt;
Password: &lt;input type="password" name="httpd_password" value="" /&gt;
&lt;input type="submit" name="login" value="Login" /&gt;
&lt;/form&gt;</pre>
</div>
<p>When the end user has filled in their login details, the form will make
an HTTP POST request to the original password protected URL.
<code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> will intercept this POST request, and if
HTML fields are found present for the username and password, the user
will be logged in, and the original password protected URL will be returned
to the user as a GET request.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="inlinepreservebody" id="inlinepreservebody">Inline Login with Body Preservation</a></h2>
<p>A limitation of the inline login technique described above is that should an
HTML form POST have resulted in the request to authenticate or
reauthenticate, the
contents of the original form posted by the browser will be lost. Depending on
the function of the website, this could present significant inconvenience for the
end user.</p>
<p><code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> addresses this by allowing the method and body
of the original request to be embedded in the login form. If authentication
is successful, the original method and body will be retried by Apache httpd, preserving
the state of the original request.</p>
<p>To enable body preservation, add three additional fields to the login form as
per the example below.</p>
<div class="example"><h3>Example with body preservation</h3><pre class="prettyprint lang-html">&lt;form method="POST" action=""&gt;
Username: &lt;input type="text" name="httpd_username" value="" /&gt;
Password: &lt;input type="password" name="httpd_password" value="" /&gt;
&lt;input type="submit" name="login" value="Login" /&gt;
<br /> <strong>&lt;input type="hidden" name="httpd_method" value="POST" /&gt;
&lt;input type="hidden" name="httpd_mimetype" value="application/x-www-form-urlencoded" /&gt;
&lt;input type="hidden" name="httpd_body" value="name1=value1&amp;name2=value2" /&gt;</strong><br />
&lt;/form&gt;</pre>
</div>
<p>How the method, mimetype and body of the original request are embedded within the
login form will depend on the platform and technology being used within the website.
</p>
<p>One option is to use the <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> module along with the
<code class="directive"><a href="../mod/mod_request.html#keptbodysize">KeptBodySize</a></code> directive, along with a suitable
CGI script to embed the variables in the form.</p>
<p>Another option is to render the login form using a CGI script or other dynamic
technology.</p>
<div class="example"><h3>CGI example</h3><pre class="prettyprint lang-config"> AuthFormProvider file
ErrorDocument 401 "/cgi-bin/login.cgi"
...</pre>
</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="loggingout" id="loggingout">Logging Out</a></h2>
<p>To enable a user to log out of a particular session, configure a page to
be handled by the <var>form-logout-handler</var>. Any attempt to access this
URL will cause the username and password to be removed from the current
session, effectively logging the user out.</p>
<p>By setting the
<code class="directive"><a href="#authformlogoutlocation">AuthFormLogoutLocation</a></code> directive,
a URL can be specified that the browser will be redirected to on successful
logout. This URL might explain to the user that they have been logged out, and
give the user the option to log in again.</p>
<div class="example"><h3>Basic logout example</h3><pre class="prettyprint lang-config">SetHandler form-logout-handler
AuthName realm
AuthFormLogoutLocation "http://example.com/loggedout.html"
Session On
SessionCookieName session path=/
SessionCryptoPassphrase secret</pre>
</div>
<p>Note that logging a user out does not delete the session; it merely removes
the username and password from the session. If this results in an empty session,
the net effect will be the removal of that session, but this is not
guaranteed. If you want to guarantee the removal of a session, set the
<code class="directive"><a href="../mod/mod_session.html#sessionmaxage">SessionMaxAge</a></code> directive to a small
value, like 1 (setting the directive to zero would mean no session age limit).
</p>
<div class="example"><h3>Basic session expiry example</h3><pre class="prettyprint lang-config">SetHandler form-logout-handler
AuthFormLogoutLocation "http://example.com/loggedout.html"
Session On
SessionMaxAge 1
SessionCookieName session path=/
SessionCryptoPassphrase secret</pre>
</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="urlencoding" id="urlencoding">Usernames and Passwords</a></h2>
<p>Note that form submission involves URLEncoding the form data:
in this case the username and password. You should therefore
pick usernames and passwords that avoid characters that are
URLencoded in form submission, or you may get unexpected results.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AuthFormAuthoritative" id="AuthFormAuthoritative">AuthFormAuthoritative</a> <a name="authformauthoritative" id="authformauthoritative">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets whether authorization and authentication are passed to
@@ -698,6 +451,253 @@ parser has been added in 2.4.4.</td></tr>
in.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="basicconfig" id="basicconfig">Basic Configuration</a></h2>
<p>To protect a particular URL with <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, you need to
decide where you will store your <var>session</var>, and you will need to
decide what method you will use to authenticate. In this simple example, the
login details will be stored in a session based on
<code class="module"><a href="../mod/mod_session_cookie.html">mod_session_cookie</a></code>, and authentication will be attempted against
a file using <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>. If authentication is unsuccessful,
the user will be redirected to the form login page.</p>
<div class="example"><h3>Basic example</h3><pre class="prettyprint lang-config">AuthFormProvider file
AuthUserFile "conf/passwd"
AuthType form
AuthName realm
AuthFormLoginRequiredLocation "http://example.com/login.html"
Session On
SessionCookieName session path=/
SessionCryptoPassphrase secret</pre>
</div>
<p>The directive <code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code> will enable
the <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> authentication when set to the value <var>form</var>.
The directives <code class="directive"><a href="#authformprovider">AuthFormProvider</a></code> and
<code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> specify that usernames
and passwords should be checked against the chosen file.</p>
<p>The directives <code class="directive"><a href="../mod/mod_session.html#session">Session</a></code>,
<code class="directive"><a href="../mod/mod_session_cookie.html#sessioncookiename">SessionCookieName</a></code> and
<code class="directive"><a href="../mod/mod_session_crypto.html#sessioncryptopassphrase">SessionCryptoPassphrase</a></code> create an
encrypted session stored within an HTTP cookie on the browser. For more information
on the different options for configuring a session, read the documentation for
<code class="module"><a href="../mod/mod_session.html">mod_session</a></code>.</p>
<p>In the simple example above, a URL has been protected by
<code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, but the user has yet to be given an opportunity to
enter their username and password. Options for doing so include providing a
dedicated standalone login page for this purpose, or for providing the login
page inline.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="standalone" id="standalone">Standalone Login</a></h2>
<p>The login form can be hosted as a standalone page, or can be provided inline on
the same page.</p>
<p>When configuring the login as a standalone page, unsuccessful authentication
attempts should be redirected to a login form created by the website for this purpose,
using the <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code>
directive. Typically this login page will contain an HTML form, asking the user to
provide their usename and password.</p>
<div class="example"><h3>Example login form</h3><pre class="prettyprint lang-html">&lt;form method="POST" action="/dologin.html"&gt;
Username: &lt;input type="text" name="httpd_username" value="" /&gt;
Password: &lt;input type="password" name="httpd_password" value="" /&gt;
&lt;input type="submit" name="login" value="Login" /&gt;
&lt;/form&gt;</pre>
</div>
<p>The part that does the actual login is handled by the <var>form-login-handler</var>.
The action of the form should point at this handler, which is configured within
Apache httpd as follows:</p>
<div class="example"><h3>Form login handler example</h3><pre class="prettyprint lang-config">&lt;Location "/dologin.html"&gt;
SetHandler form-login-handler
AuthFormLoginRequiredLocation "http://example.com/login.html"
AuthFormLoginSuccessLocation "http://example.com/success.html"
AuthFormProvider file
AuthUserFile "conf/passwd"
AuthType form
AuthName realm
Session On
SessionCookieName session path=/
SessionCryptoPassphrase secret
&lt;/Location&gt;</pre>
</div>
<p>The URLs specified by the
<code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code> directive will typically
point to a page explaining to the user that their login attempt was unsuccessful, and they
should try again. The <code class="directive"><a href="#authformloginsuccesslocation">AuthFormLoginSuccessLocation</a></code>
directive specifies the URL the user should be redirected to upon successful login.</p>
<p>Alternatively, the URL to redirect the user to on success can be embedded within the login
form, as in the example below. As a result, the same <var>form-login-handler</var> can be
reused for different areas of a website.</p>
<div class="example"><h3>Example login form with location</h3><pre class="prettyprint lang-html">&lt;form method="POST" action="/dologin.html"&gt;
Username: &lt;input type="text" name="httpd_username" value="" /&gt;
Password: &lt;input type="password" name="httpd_password" value="" /&gt;
&lt;input type="submit" name="login" value="Login" /&gt;
&lt;input type="hidden" name="httpd_location" value="http://example.com/success.html" /&gt;
&lt;/form&gt;</pre>
</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="inline" id="inline">Inline Login</a></h2>
<div class="warning"><h3>Warning</h3>
<p>A risk exists that under certain circumstances, the login form configured
using inline login may be submitted more than once, revealing login credentials to
the application running underneath. The administrator must ensure that the underlying
application is properly secured to prevent abuse. If in doubt, use the
standalone login configuration.</p>
</div>
<p>As an alternative to having a dedicated login page for a website, it is possible to
configure <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> to authenticate users inline, without being
redirected to another page. This allows the state of the current page to be preserved
during the login attempt. This can be useful in a situation where a time limited
session is in force, and the session times out in the middle of the user request. The
user can be re-authenticated in place, and they can continue where they left off.</p>
<p>If a non-authenticated user attempts to access a page protected by
<code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> that isn't configured with a
<code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code> directive,
a <var>HTTP_UNAUTHORIZED</var> status code is returned to the browser indicating to the user
that they are not authorized to view the page.</p>
<p>To configure inline authentication, the administrator overrides the error document
returned by the <var>HTTP_UNAUTHORIZED</var> status code with a custom error document
containing the login form, as follows:</p>
<div class="example"><h3>Basic inline example</h3><pre class="prettyprint lang-config">AuthFormProvider file
ErrorDocument 401 "/login.shtml"
AuthUserFile "conf/passwd"
AuthType form
AuthName realm
AuthFormLoginRequiredLocation "http://example.com/login.html"
Session On
SessionCookieName session path=/
SessionCryptoPassphrase secret</pre>
</div>
<p>The error document page should contain a login form with an empty action property,
as per the example below. This has the effect of submitting the form to
the original protected URL, without the page having to know what that
URL is.</p>
<div class="example"><h3>Example inline login form</h3><pre class="prettyprint lang-html">&lt;form method="POST" <strong>action=""</strong>&gt;
Username: &lt;input type="text" name="httpd_username" value="" /&gt;
Password: &lt;input type="password" name="httpd_password" value="" /&gt;
&lt;input type="submit" name="login" value="Login" /&gt;
&lt;/form&gt;</pre>
</div>
<p>When the end user has filled in their login details, the form will make
an HTTP POST request to the original password protected URL.
<code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> will intercept this POST request, and if
HTML fields are found present for the username and password, the user
will be logged in, and the original password protected URL will be returned
to the user as a GET request.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="inlinepreservebody" id="inlinepreservebody">Inline Login with Body Preservation</a></h2>
<p>A limitation of the inline login technique described above is that should an
HTML form POST have resulted in the request to authenticate or
reauthenticate, the
contents of the original form posted by the browser will be lost. Depending on
the function of the website, this could present significant inconvenience for the
end user.</p>
<p><code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> addresses this by allowing the method and body
of the original request to be embedded in the login form. If authentication
is successful, the original method and body will be retried by Apache httpd, preserving
the state of the original request.</p>
<p>To enable body preservation, add three additional fields to the login form as
per the example below.</p>
<div class="example"><h3>Example with body preservation</h3><pre class="prettyprint lang-html">&lt;form method="POST" action=""&gt;
Username: &lt;input type="text" name="httpd_username" value="" /&gt;
Password: &lt;input type="password" name="httpd_password" value="" /&gt;
&lt;input type="submit" name="login" value="Login" /&gt;
<br /> <strong>&lt;input type="hidden" name="httpd_method" value="POST" /&gt;
&lt;input type="hidden" name="httpd_mimetype" value="application/x-www-form-urlencoded" /&gt;
&lt;input type="hidden" name="httpd_body" value="name1=value1&amp;name2=value2" /&gt;</strong><br />
&lt;/form&gt;</pre>
</div>
<p>How the method, mimetype and body of the original request are embedded within the
login form will depend on the platform and technology being used within the website.
</p>
<p>One option is to use the <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> module along with the
<code class="directive"><a href="../mod/mod_request.html#keptbodysize">KeptBodySize</a></code> directive, along with a suitable
CGI script to embed the variables in the form.</p>
<p>Another option is to render the login form using a CGI script or other dynamic
technology.</p>
<div class="example"><h3>CGI example</h3><pre class="prettyprint lang-config"> AuthFormProvider file
ErrorDocument 401 "/cgi-bin/login.cgi"
...</pre>
</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="loggingout" id="loggingout">Logging Out</a></h2>
<p>To enable a user to log out of a particular session, configure a page to
be handled by the <var>form-logout-handler</var>. Any attempt to access this
URL will cause the username and password to be removed from the current
session, effectively logging the user out.</p>
<p>By setting the
<code class="directive"><a href="#authformlogoutlocation">AuthFormLogoutLocation</a></code> directive,
a URL can be specified that the browser will be redirected to on successful
logout. This URL might explain to the user that they have been logged out, and
give the user the option to log in again.</p>
<div class="example"><h3>Basic logout example</h3><pre class="prettyprint lang-config">SetHandler form-logout-handler
AuthName realm
AuthFormLogoutLocation "http://example.com/loggedout.html"
Session On
SessionCookieName session path=/
SessionCryptoPassphrase secret</pre>
</div>
<p>Note that logging a user out does not delete the session; it merely removes
the username and password from the session. If this results in an empty session,
the net effect will be the removal of that session, but this is not
guaranteed. If you want to guarantee the removal of a session, set the
<code class="directive"><a href="../mod/mod_session.html#sessionmaxage">SessionMaxAge</a></code> directive to a small
value, like 1 (setting the directive to zero would mean no session age limit).
</p>
<div class="example"><h3>Basic session expiry example</h3><pre class="prettyprint lang-config">SetHandler form-logout-handler
AuthFormLogoutLocation "http://example.com/loggedout.html"
Session On
SessionMaxAge 1
SessionCookieName session path=/
SessionCryptoPassphrase secret</pre>
</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="urlencoding" id="urlencoding">Usernames and Passwords</a></h2>
<p>Note that form submission involves URLEncoding the form data:
in this case the username and password. You should therefore
pick usernames and passwords that avoid characters that are
URLencoded in form submission, or you may get unexpected results.</p>
</div>
</div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/mod/mod_auth_form.html" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -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 prot<6F>ger une URL particuli<6C>re avec le module
<code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, vous devez d<>terminer l'endroit o<>
vous allez stocker votre <var>session</var>, ainsi que la m<>thode
d'authentification. Dans cet exemple simple, les informations de
connexion sont stock<63>es dans une session <20> 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 <20>choue,
l'utilisateur dera redirig<69> vers la page du formulaire de
connexion.</p>
<div class="example"><h3>Exemple simple</h3><pre class="prettyprint lang-config">AuthFormProvider file
AuthUserFile conf/passwd
AuthType form
AuthName realm
AuthFormLoginRequiredLocation http://example.com/login.html
Session On
SessionCookieName session path=/
SessionCryptoPassphrase secret</pre>
</div>
<p>L'authentification <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> est activ<69>e
en affectant la valeur <var>form</var> <20> la directive <code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code>. Les directives
<code class="directive"><a href="#authformprovider">AuthFormProvider</a></code> et
<code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code>
sp<73>cifient que les noms d'utilisateurs et mots de passe seront
v<>rifi<66>s en utilisant le fichier choisi.</p>
<p>Les directives <code class="directive"><a href="../mod/mod_session.html#session">Session</a></code>, <code class="directive"><a href="../mod/mod_session_cookie.html#sessioncookiename">SessionCookieName</a></code> et
<code class="directive"><a href="../mod/mod_session_crypto.html#sessioncryptopassphrase">SessionCryptoPassphrase</a></code>
cr<63>ent une session chiffr<66>e stock<63>e dans un cookie HTTP au niveau
du navigateur. Pour plus d'informations <20> propos des diff<66>rentes
options de configuration des sessions, reportez-vous <20> 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 <20>t<EFBFBD> prot<6F>g<EFBFBD>e par
<code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, mais on doit maintenant fournir
<20> l'utilisateur un moyen d'entrer un nom et un mot de passe. <20> cet
effet, on peut soit <20>crire une page de connexion ind<6E>pendante
d<>di<64>e, soit inclure le formulaire de connexion dans la page
courante.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="standalone" id="standalone">Page de connexion d<>di<64>e</a></h2>
<p>Le formulaire de connexion peut <20>tre contenu dans une page
ind<6E>pendante, ou <20>tre inclus dans la page courante. </p>
<p>Lorsque la connexion s'effectue <20> partir d'une page
ind<6E>pendante et si la tentative d'authentification <20>choue,
l'utilisateur doit <20>tre redirig<69> vers un formulaire de connexion,
cr<63><72> <20> cet effet sur le site web, en utilisant la directive
<code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code>.
En g<>n<EFBFBD>ral, la page de connexion contiendra un formulaire HTML
demandant <20> l'utilisateur de fournir un nom et un mot de passe.</p>
<div class="example"><h3>Exemple de formulaire de connexion</h3><pre class="prettyprint lang-html">&lt;form method="POST" action="/dologin.html"&gt;
Username: &lt;input type="text" name="httpd_username" value="" /&gt;
Password: &lt;input type="password" name="httpd_password" value="" /&gt;
&lt;input type="submit" name="login" value="Login" /&gt;
&lt;/form&gt;</pre>
</div>
<p>La partie o<> s'effectue la connexion proprement dite est
trait<69>e par le gestionnaire <var>form-login-handler</var>.
L'action de ce formulaire doit pointer vers ce gestionnaire, ce
que l'on configure dans Apache httpd comme suit :</p>
<div class="example"><h3>Exemple de configuration du gestionnaire de
formulaire de connexion</h3><pre class="prettyprint lang-config">&lt;Location /dologin.html&gt;
SetHandler form-login-handler
AuthFormLoginRequiredLocation http://example.com/login.html
AuthFormLoginSuccessLocation http://example.com/success.html
AuthFormProvider file
AuthUserFile conf/passwd
AuthType form
AuthName realm
Session On
SessionCookieName session path=/
SessionCryptoPassphrase secret
&lt;/Location&gt;</pre>
</div>
<p>L'URL sp<73>cifi<66>e par la directive
<code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code>
r<>f<EFBFBD>rencera en g<>n<EFBFBD>ral une page expliquant <20> l'utilisateur que sa
tentative de connexion a <20>chou<6F>, et qu'il doit la renouveler. La
directive <code class="directive"><a href="#authformloginsuccesslocation">AuthFormLoginSuccessLocation</a></code>
sp<73>cifie l'URL vers laquelle l'utilisateur doit <20>tre redirig<69> s'il
s'est authentifi<66> avec succ<63>s.</p>
<p>Alternativement, l'URL vers laquelle doit <20>tre redirig<69>
l'utilisateur s'il s'est authentifi<66> avec succ<63>s peut <20>tre
int<6E>gr<67>e dans le formulaire de connexion, comme dans l'exemple
ci-dessous. Il en d<>coule que le m<>me gestionnaire
<var>form-login-handler</var> pourra <20>tre utilis<69> pour diff<66>rentes
zones du site web.</p>
<div class="example"><h3>Exemple de formulaire d'authentification multizone</h3><pre class="prettyprint lang-html">&lt;form method="POST" action="/dologin.html"&gt;
Username: &lt;input type="text" name="httpd_username" value="" /&gt;
Password: &lt;input type="password" name="httpd_password" value="" /&gt;
&lt;input type="submit" name="login" value="Login" /&gt;
&lt;input type="hidden" name="httpd_location" value="http://example.com/success.html" /&gt;
&lt;/form&gt;</pre>
</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="inline" id="inline">Connexion <20> la vol<6F>e</a></h2>
<div class="warning"><h3>Avertissement</h3>
<p>Il existe un risque, dans certaines circonstances, que le
formulaire de connexion configur<75> pour une connexion <20> la vol<6F>e
soit soumis plusieurs fois, r<>v<EFBFBD>lant de ce fait les param<61>tres
de connexion <20> l'application sous-jacente. L'administrateur doit
s'assurer que cette derni<6E>re est correctement s<>curis<69>e afin
d'<27>viter les <20>ventuels abus. En cas de doute, utilisez une page
de connexion ind<6E>pendante d<>di<64>e.</p>
</div>
<p>Comme alternative <20> la page de connexion d<>di<64>e pour un site
web, il est possible de configurer <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>
pour authentifier les utilisateurs <20> la vol<6F>e, sans les rediriger
vers une autre page, ce qui permet de conserver l'<27>tat de la page
courante au cours de la tentative de connexion. Ceci peut s'av<61>rer
utile dans le cas d'une session limit<69>e dans le temps, si le d<>lai
de la session a expir<69> pendant la requ<71>te de l'utilisateur. Ce
dernier peut alors se r<>authentifier <20> la m<>me place, et
poursuivre son activit<69> <20> partir du point o<> il en <20>tait rest<73>.</p>
<p>Si un utilisateur non authentifi<66> tente d'acc<63>der <20> une page
prot<6F>g<EFBFBD>e par <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, et si ce dernier
n'est pas configur<75> avec une directive <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code>,
un code de statut <var>HTTP_UNAUTHORIZED</var> est renvoy<6F> vers le
navigateur, indiquant <20> l'utilisateur qu'il n'est pas autoris<69> <20>
acc<63>der <20> cette page.</p>
<p>Pour configurer l'authentification <20> la vol<6F>e, l'administrateur
remplace le message d'erreur renvoy<6F> par le code de statut
<var>HTTP_UNAUTHORIZED</var> par un message d'erreur personnalis<69>
contenant le formulaire de connexion comme suit :</p>
<div class="example"><h3>Exemple simple d'authentification <20> la vol<6F>e</h3><pre class="prettyprint lang-config">AuthFormProvider file
ErrorDocument 401 /login.shtml
AuthUserFile conf/passwd
AuthType form
AuthName realm
AuthFormLoginRequiredLocation http://example.com/login.html
Session On
SessionCookieName session path=/
SessionCryptoPassphrase secret</pre>
</div>
<p>La page du message d'erreur doit contenir un formulaire de
connexion dont la propri<72>t<EFBFBD> action est vide, comme dans l'exemple
ci-dessous. Ceci a pour effet de soumettre le formulaire <20> l'URL
prot<6F>g<EFBFBD>e originale, cette derni<6E>re n'ayant pas besoin d'<27>tre
connue de la page en cours.</p>
<div class="example"><h3>Exemple de formulaire de connexion <20> la vol<6F>e</h3><pre class="prettyprint lang-html">&lt;form method="POST" <strong>action=""</strong>&gt;
Username: &lt;input type="text" name="httpd_username" value="" /&gt;
Password: &lt;input type="password" name="httpd_password" value="" /&gt;
&lt;input type="submit" name="login" value="Login" /&gt;
&lt;/form&gt;</pre>
</div>
<p>Lorsque l'utilisateur final a entr<74> ses informations de
connexion, le formulaire effectue une requ<71>te HTTP POST pour l'URL
originale prot<6F>g<EFBFBD>e par mot de passe.
<code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> va alors intercepter cette requ<71>te
POST, et dans le cas o<> des champs HTML Utilisateur et Mot de
passe corrects sont pr<70>sents, l'utilisateur sera connect<63>, et
l'URL originale prot<6F>g<EFBFBD>e par mot de passe lui sera retourn<72>e en
tant que requ<71>te GET.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="inlinepreservebody" id="inlinepreservebody">Connexion <20> la vol<6F>e avec
conservation du contenu</a></h2>
<p>Il existe une limite <20> la technique de connexion <20> la vol<6F>e
d<>crite ci-dessus ; si un formulaire HTML POST entra<72>ne une
demande d'authentification ou de r<>authentification, le contenu du
formulaire original envoy<6F> par le navigateur sera perdu. Cela peut
s'av<61>rer plus ou moins g<>nant pour l'utilisateur final selon la
fonction du site web.</p>
<p>Comme solution <20> ce probl<62>me, <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>
permet d'int<6E>grer la m<>thode et le contenu de la requ<71>te originale
dans le formulaire de connexion. Si l'authentification r<>ussit,
Apache httpd pourra refaire une tentative avec la m<>thode et le contenu
originaux, tout en conservant l'<27>tat de la requ<71>te originale.</p>
<p>Pour mettre en oeuvre la conservation du contenu, vous devez
ajouter trois champs suppl<70>mentaires au formulaire de connexion
comme dans l'exemple suivant :</p>
<div class="example"><h3>Exemple de formulaire avec conservation du
contenu</h3><pre class="prettyprint lang-html">&lt;form method="POST" action=""&gt;
Username: &lt;input type="text" name="httpd_username" value="" /&gt;
Password: &lt;input type="password" name="httpd_password" value="" /&gt;
&lt;input type="submit" name="login" value="Login" /&gt;
<br /> <strong>&lt;input type="hidden" name="httpd_method" value="POST" /&gt;
&lt;input type="hidden" name="httpd_mimetype" value="application/x-www-form-urlencoded" /&gt;
&lt;input type="hidden" name="httpd_body" value="name1=value1&amp;name2=value2" /&gt;</strong><br />
&lt;/form&gt;</pre>
</div>
<p>La mani<6E>re dont la m<>thode, le type MIME et le contenu de la
requ<71>te originale seront int<6E>gr<67>s dans le formulaire de connexion
vont d<>pendre de la plate-forme et de la technologie utilis<69>es au
sein du site web.
</p>
<p>Une option consiste <20> 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<70> pour int<6E>grer les variables dans le
formulaire.</p>
<p>Une autre option consiste <20> pr<70>senter le formulaire de
connexion en utilisant un script CGI ou une autre technologie
dynamique.</p>
<div class="example"><h3>Exemple avec script CGI</h3><pre class="prettyprint lang-config"> AuthFormProvider file
ErrorDocument 401 /cgi-bin/login.cgi
...</pre>
</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="loggingout" id="loggingout">D<>connexion</a></h2>
<p>Pour permettre <20> un utilisateur de se d<>connecter d'une session
particuli<6C>re, vous devez configurer une page pour qu'elle soit
trait<69>e par le gestionnaire <var>form-logout-handler</var>. Tout
acc<63>s <20> cette URL va entra<72>ner la suppression de l'Utilisateur et
du Mot de passe de la session courante, ce qui aura pour effet de
d<>connecter l'utilisateur.</p>
<p>Vous pouvez sp<73>cifier une URL vers laquelle le navigateur sera
redirig<69> en cas de d<>connection r<>ussie, en d<>finissant la
directive <code class="directive"><a href="#authformlogoutlocation">AuthFormLogoutLocation</a></code>. Cette
URL devra expliquer <20> l'utilisateur qu'il a <20>t<EFBFBD> d<>connect<63>, et lui
donner la possibilit<69> de se connecter <20> nouveau.</p>
<div class="example"><h3>Exemple simple de configuration de la
d<>connexion</h3><pre class="prettyprint lang-config">SetHandler form-logout-handler
AuthName realm
AuthFormLogoutLocation http://example.com/loggedout.html
Session On
SessionCookieName session path=/
SessionCryptoPassphrase secret</pre>
</div>
<p>Notez que la d<>connexion d'un utilisateur ne supprime pas la
session ; elle supprime seulement l'utilisateur et le mot de passe
de la session. Si la session qui en r<>sulte est vide, elle sera
probablement supprim<69>e, mais ce n'est pas garanti. Si vous voulez
<20>tre s<>r que la session sera supprim<69>e, affectez une valeur faible
<20> la directive <code class="directive"><a href="../mod/mod_session.html#sessionmaxage">SessionMaxAge</a></code>, par exemple 1
(affecter <20> cette directive la valeur z<>ro signifie une session
sans limite d'<27>ge).
</p>
<div class="example"><h3>Exemple simple avec dur<75>e de validit<69> de session
limit<69>e</h3><pre class="prettyprint lang-config">SetHandler form-logout-handler
AuthFormLogoutLocation http://example.com/loggedout.html
Session On
SessionMaxAge 1
SessionCookieName session path=/
SessionCryptoPassphrase secret</pre>
</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="urlencoding" id="urlencoding">Noms d'utilisateurs et mots de
passe</a></h2>
<p>Notez que la soumission d'un formulaire implique l'encodage URL
(URLEncoding) des donn<6E>es du formulaire, ici le nom d'utilisateur et
le mot de passe. Vous devez donc choisir des noms d'utilisateurs et
mots de passe qui ne contiennent pas de caract<63>res susceptibles
d'<27>tre encod<6F>s URL lors de la soumission du formulaire, sous peine
d'obtenir des r<>sultats inattendus.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="authformauthoritative" id="authformauthoritative">Directive</a> <a name="AuthFormAuthoritative" id="AuthFormAuthoritative">AuthFormAuthoritative</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D<>termine si l'autorisation et l'authentification sont confi<66>s <20>
@@ -786,6 +497,295 @@ connexion</td></tr>
d'utilisateur qui sera utilis<69> pour la connexion.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="basicconfig" id="basicconfig">Configuration de base</a></h2>
<p>Pour prot<6F>ger une URL particuli<6C>re avec le module
<code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, vous devez d<>terminer l'endroit o<>
vous allez stocker votre <var>session</var>, ainsi que la m<>thode
d'authentification. Dans cet exemple simple, les informations de
connexion sont stock<63>es dans une session <20> 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 <20>choue,
l'utilisateur dera redirig<69> vers la page du formulaire de
connexion.</p>
<div class="example"><h3>Exemple simple</h3><pre class="prettyprint lang-config">AuthFormProvider file
AuthUserFile conf/passwd
AuthType form
AuthName realm
AuthFormLoginRequiredLocation http://example.com/login.html
Session On
SessionCookieName session path=/
SessionCryptoPassphrase secret</pre>
</div>
<p>L'authentification <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> est activ<69>e
en affectant la valeur <var>form</var> <20> la directive <code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code>. Les directives
<code class="directive"><a href="#authformprovider">AuthFormProvider</a></code> et
<code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code>
sp<73>cifient que les noms d'utilisateurs et mots de passe seront
v<>rifi<66>s en utilisant le fichier choisi.</p>
<p>Les directives <code class="directive"><a href="../mod/mod_session.html#session">Session</a></code>, <code class="directive"><a href="../mod/mod_session_cookie.html#sessioncookiename">SessionCookieName</a></code> et
<code class="directive"><a href="../mod/mod_session_crypto.html#sessioncryptopassphrase">SessionCryptoPassphrase</a></code>
cr<63>ent une session chiffr<66>e stock<63>e dans un cookie HTTP au niveau
du navigateur. Pour plus d'informations <20> propos des diff<66>rentes
options de configuration des sessions, reportez-vous <20> 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 <20>t<EFBFBD> prot<6F>g<EFBFBD>e par
<code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, mais on doit maintenant fournir
<20> l'utilisateur un moyen d'entrer un nom et un mot de passe. <20> cet
effet, on peut soit <20>crire une page de connexion ind<6E>pendante
d<>di<64>e, soit inclure le formulaire de connexion dans la page
courante.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="standalone" id="standalone">Page de connexion d<>di<64>e</a></h2>
<p>Le formulaire de connexion peut <20>tre contenu dans une page
ind<6E>pendante, ou <20>tre inclus dans la page courante. </p>
<p>Lorsque la connexion s'effectue <20> partir d'une page
ind<6E>pendante et si la tentative d'authentification <20>choue,
l'utilisateur doit <20>tre redirig<69> vers un formulaire de connexion,
cr<63><72> <20> cet effet sur le site web, en utilisant la directive
<code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code>.
En g<>n<EFBFBD>ral, la page de connexion contiendra un formulaire HTML
demandant <20> l'utilisateur de fournir un nom et un mot de passe.</p>
<div class="example"><h3>Exemple de formulaire de connexion</h3><pre class="prettyprint lang-html">&lt;form method="POST" action="/dologin.html"&gt;
Username: &lt;input type="text" name="httpd_username" value="" /&gt;
Password: &lt;input type="password" name="httpd_password" value="" /&gt;
&lt;input type="submit" name="login" value="Login" /&gt;
&lt;/form&gt;</pre>
</div>
<p>La partie o<> s'effectue la connexion proprement dite est
trait<69>e par le gestionnaire <var>form-login-handler</var>.
L'action de ce formulaire doit pointer vers ce gestionnaire, ce
que l'on configure dans Apache httpd comme suit :</p>
<div class="example"><h3>Exemple de configuration du gestionnaire de
formulaire de connexion</h3><pre class="prettyprint lang-config">&lt;Location /dologin.html&gt;
SetHandler form-login-handler
AuthFormLoginRequiredLocation http://example.com/login.html
AuthFormLoginSuccessLocation http://example.com/success.html
AuthFormProvider file
AuthUserFile conf/passwd
AuthType form
AuthName realm
Session On
SessionCookieName session path=/
SessionCryptoPassphrase secret
&lt;/Location&gt;</pre>
</div>
<p>L'URL sp<73>cifi<66>e par la directive
<code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code>
r<>f<EFBFBD>rencera en g<>n<EFBFBD>ral une page expliquant <20> l'utilisateur que sa
tentative de connexion a <20>chou<6F>, et qu'il doit la renouveler. La
directive <code class="directive"><a href="#authformloginsuccesslocation">AuthFormLoginSuccessLocation</a></code>
sp<73>cifie l'URL vers laquelle l'utilisateur doit <20>tre redirig<69> s'il
s'est authentifi<66> avec succ<63>s.</p>
<p>Alternativement, l'URL vers laquelle doit <20>tre redirig<69>
l'utilisateur s'il s'est authentifi<66> avec succ<63>s peut <20>tre
int<6E>gr<67>e dans le formulaire de connexion, comme dans l'exemple
ci-dessous. Il en d<>coule que le m<>me gestionnaire
<var>form-login-handler</var> pourra <20>tre utilis<69> pour diff<66>rentes
zones du site web.</p>
<div class="example"><h3>Exemple de formulaire d'authentification multizone</h3><pre class="prettyprint lang-html">&lt;form method="POST" action="/dologin.html"&gt;
Username: &lt;input type="text" name="httpd_username" value="" /&gt;
Password: &lt;input type="password" name="httpd_password" value="" /&gt;
&lt;input type="submit" name="login" value="Login" /&gt;
&lt;input type="hidden" name="httpd_location" value="http://example.com/success.html" /&gt;
&lt;/form&gt;</pre>
</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="inline" id="inline">Connexion <20> la vol<6F>e</a></h2>
<div class="warning"><h3>Avertissement</h3>
<p>Il existe un risque, dans certaines circonstances, que le
formulaire de connexion configur<75> pour une connexion <20> la vol<6F>e
soit soumis plusieurs fois, r<>v<EFBFBD>lant de ce fait les param<61>tres
de connexion <20> l'application sous-jacente. L'administrateur doit
s'assurer que cette derni<6E>re est correctement s<>curis<69>e afin
d'<27>viter les <20>ventuels abus. En cas de doute, utilisez une page
de connexion ind<6E>pendante d<>di<64>e.</p>
</div>
<p>Comme alternative <20> la page de connexion d<>di<64>e pour un site
web, il est possible de configurer <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>
pour authentifier les utilisateurs <20> la vol<6F>e, sans les rediriger
vers une autre page, ce qui permet de conserver l'<27>tat de la page
courante au cours de la tentative de connexion. Ceci peut s'av<61>rer
utile dans le cas d'une session limit<69>e dans le temps, si le d<>lai
de la session a expir<69> pendant la requ<71>te de l'utilisateur. Ce
dernier peut alors se r<>authentifier <20> la m<>me place, et
poursuivre son activit<69> <20> partir du point o<> il en <20>tait rest<73>.</p>
<p>Si un utilisateur non authentifi<66> tente d'acc<63>der <20> une page
prot<6F>g<EFBFBD>e par <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, et si ce dernier
n'est pas configur<75> avec une directive <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code>,
un code de statut <var>HTTP_UNAUTHORIZED</var> est renvoy<6F> vers le
navigateur, indiquant <20> l'utilisateur qu'il n'est pas autoris<69> <20>
acc<63>der <20> cette page.</p>
<p>Pour configurer l'authentification <20> la vol<6F>e, l'administrateur
remplace le message d'erreur renvoy<6F> par le code de statut
<var>HTTP_UNAUTHORIZED</var> par un message d'erreur personnalis<69>
contenant le formulaire de connexion comme suit :</p>
<div class="example"><h3>Exemple simple d'authentification <20> la vol<6F>e</h3><pre class="prettyprint lang-config">AuthFormProvider file
ErrorDocument 401 /login.shtml
AuthUserFile conf/passwd
AuthType form
AuthName realm
AuthFormLoginRequiredLocation http://example.com/login.html
Session On
SessionCookieName session path=/
SessionCryptoPassphrase secret</pre>
</div>
<p>La page du message d'erreur doit contenir un formulaire de
connexion dont la propri<72>t<EFBFBD> action est vide, comme dans l'exemple
ci-dessous. Ceci a pour effet de soumettre le formulaire <20> l'URL
prot<6F>g<EFBFBD>e originale, cette derni<6E>re n'ayant pas besoin d'<27>tre
connue de la page en cours.</p>
<div class="example"><h3>Exemple de formulaire de connexion <20> la vol<6F>e</h3><pre class="prettyprint lang-html">&lt;form method="POST" <strong>action=""</strong>&gt;
Username: &lt;input type="text" name="httpd_username" value="" /&gt;
Password: &lt;input type="password" name="httpd_password" value="" /&gt;
&lt;input type="submit" name="login" value="Login" /&gt;
&lt;/form&gt;</pre>
</div>
<p>Lorsque l'utilisateur final a entr<74> ses informations de
connexion, le formulaire effectue une requ<71>te HTTP POST pour l'URL
originale prot<6F>g<EFBFBD>e par mot de passe.
<code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> va alors intercepter cette requ<71>te
POST, et dans le cas o<> des champs HTML Utilisateur et Mot de
passe corrects sont pr<70>sents, l'utilisateur sera connect<63>, et
l'URL originale prot<6F>g<EFBFBD>e par mot de passe lui sera retourn<72>e en
tant que requ<71>te GET.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="inlinepreservebody" id="inlinepreservebody">Connexion <20> la vol<6F>e avec
conservation du contenu</a></h2>
<p>Il existe une limite <20> la technique de connexion <20> la vol<6F>e
d<>crite ci-dessus ; si un formulaire HTML POST entra<72>ne une
demande d'authentification ou de r<>authentification, le contenu du
formulaire original envoy<6F> par le navigateur sera perdu. Cela peut
s'av<61>rer plus ou moins g<>nant pour l'utilisateur final selon la
fonction du site web.</p>
<p>Comme solution <20> ce probl<62>me, <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>
permet d'int<6E>grer la m<>thode et le contenu de la requ<71>te originale
dans le formulaire de connexion. Si l'authentification r<>ussit,
Apache httpd pourra refaire une tentative avec la m<>thode et le contenu
originaux, tout en conservant l'<27>tat de la requ<71>te originale.</p>
<p>Pour mettre en oeuvre la conservation du contenu, vous devez
ajouter trois champs suppl<70>mentaires au formulaire de connexion
comme dans l'exemple suivant :</p>
<div class="example"><h3>Exemple de formulaire avec conservation du
contenu</h3><pre class="prettyprint lang-html">&lt;form method="POST" action=""&gt;
Username: &lt;input type="text" name="httpd_username" value="" /&gt;
Password: &lt;input type="password" name="httpd_password" value="" /&gt;
&lt;input type="submit" name="login" value="Login" /&gt;
<br /> <strong>&lt;input type="hidden" name="httpd_method" value="POST" /&gt;
&lt;input type="hidden" name="httpd_mimetype" value="application/x-www-form-urlencoded" /&gt;
&lt;input type="hidden" name="httpd_body" value="name1=value1&amp;name2=value2" /&gt;</strong><br />
&lt;/form&gt;</pre>
</div>
<p>La mani<6E>re dont la m<>thode, le type MIME et le contenu de la
requ<71>te originale seront int<6E>gr<67>s dans le formulaire de connexion
vont d<>pendre de la plate-forme et de la technologie utilis<69>es au
sein du site web.
</p>
<p>Une option consiste <20> 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<70> pour int<6E>grer les variables dans le
formulaire.</p>
<p>Une autre option consiste <20> pr<70>senter le formulaire de
connexion en utilisant un script CGI ou une autre technologie
dynamique.</p>
<div class="example"><h3>Exemple avec script CGI</h3><pre class="prettyprint lang-config"> AuthFormProvider file
ErrorDocument 401 /cgi-bin/login.cgi
...</pre>
</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="loggingout" id="loggingout">D<>connexion</a></h2>
<p>Pour permettre <20> un utilisateur de se d<>connecter d'une session
particuli<6C>re, vous devez configurer une page pour qu'elle soit
trait<69>e par le gestionnaire <var>form-logout-handler</var>. Tout
acc<63>s <20> cette URL va entra<72>ner la suppression de l'Utilisateur et
du Mot de passe de la session courante, ce qui aura pour effet de
d<>connecter l'utilisateur.</p>
<p>Vous pouvez sp<73>cifier une URL vers laquelle le navigateur sera
redirig<69> en cas de d<>connection r<>ussie, en d<>finissant la
directive <code class="directive"><a href="#authformlogoutlocation">AuthFormLogoutLocation</a></code>. Cette
URL devra expliquer <20> l'utilisateur qu'il a <20>t<EFBFBD> d<>connect<63>, et lui
donner la possibilit<69> de se connecter <20> nouveau.</p>
<div class="example"><h3>Exemple simple de configuration de la
d<>connexion</h3><pre class="prettyprint lang-config">SetHandler form-logout-handler
AuthName realm
AuthFormLogoutLocation http://example.com/loggedout.html
Session On
SessionCookieName session path=/
SessionCryptoPassphrase secret</pre>
</div>
<p>Notez que la d<>connexion d'un utilisateur ne supprime pas la
session ; elle supprime seulement l'utilisateur et le mot de passe
de la session. Si la session qui en r<>sulte est vide, elle sera
probablement supprim<69>e, mais ce n'est pas garanti. Si vous voulez
<20>tre s<>r que la session sera supprim<69>e, affectez une valeur faible
<20> la directive <code class="directive"><a href="../mod/mod_session.html#sessionmaxage">SessionMaxAge</a></code>, par exemple 1
(affecter <20> cette directive la valeur z<>ro signifie une session
sans limite d'<27>ge).
</p>
<div class="example"><h3>Exemple simple avec dur<75>e de validit<69> de session
limit<69>e</h3><pre class="prettyprint lang-config">SetHandler form-logout-handler
AuthFormLogoutLocation http://example.com/loggedout.html
Session On
SessionMaxAge 1
SessionCookieName session path=/
SessionCryptoPassphrase secret</pre>
</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="urlencoding" id="urlencoding">Noms d'utilisateurs et mots de
passe</a></h2>
<p>Notez que la soumission d'un formulaire implique l'encodage URL
(URLEncoding) des donn<6E>es du formulaire, ici le nom d'utilisateur et
le mot de passe. Vous devez donc choisir des noms d'utilisateurs et
mots de passe qui ne contiennent pas de caract<63>res susceptibles
d'<27>tre encod<6F>s URL lors de la soumission du formulaire, sous peine
d'obtenir des r<>sultats inattendus.</p>
</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_auth_form.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -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">&lt;Directory "/var/www/html/private"&gt;
AuthName "Use 'anonymous' &amp; Email address for guest entry"
AuthType Basic
AuthBasicProvider file anon
AuthUserFile "/path/to/your/.htpasswd"
Anonymous_NoUserID off
Anonymous_MustGiveEmail on
Anonymous_VerifyEmail on
Anonymous_LogEmail on
Anonymous anonymous guest www test welcome
Require valid-user
&lt;/Directory&gt;</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="Anonymous" id="Anonymous">Anonymous</a> <a name="anonymous" id="anonymous">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specifies userIDs that are allowed access without
@@ -208,6 +165,49 @@ formatted email address</td></tr>
at least one '@' and a '.' to encourage users to enter valid email
addresses (see the above <code class="directive"><a href="#anonymous_logemail">Anonymous_LogEmail</a></code>).</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="example" id="example">Example</a></h2>
<p>The example below is combined with "normal" htpasswd-file based
authentication and allows users in additionally as 'guests' with the
following properties:</p>
<ul>
<li>It insists that the user enters a userID.
(<code class="directive"><a href="#anonymous_nouserid">Anonymous_NoUserID</a></code>)</li>
<li>It insists that the user enters a password.
(<code class="directive"><a href="#anonymous_mustgiveemail">Anonymous_MustGiveEmail</a></code>)</li>
<li>The password entered must be a valid email address, <em>i.e.</em>
contain at least one '@' and a '.'.
(<code class="directive"><a href="#anonymous_verifyemail">Anonymous_VerifyEmail</a></code>)</li>
<li>The userID must be one of <code>anonymous guest www test
welcome</code> and comparison is <strong>not</strong> case
sensitive. (<code class="directive"><a href="#anonymous">Anonymous</a></code>)</li>
<li>And the Email addresses entered in the passwd field are
logged to the error log file.
(<code class="directive"><a href="#anonymous_logemail">Anonymous_LogEmail</a></code>)</li>
</ul>
<div class="example"><h3>Example</h3><pre class="prettyprint lang-config">&lt;Directory "/var/www/html/private"&gt;
AuthName "Use 'anonymous' &amp; Email address for guest entry"
AuthType Basic
AuthBasicProvider file anon
AuthUserFile "/path/to/your/.htpasswd"
Anonymous_NoUserID off
Anonymous_MustGiveEmail on
Anonymous_VerifyEmail on
Anonymous_LogEmail on
Anonymous anonymous guest www test welcome
Require valid-user
&lt;/Directory&gt;</pre>
</div>
</div>
</div>
<div class="bottomlang">

View File

@@ -72,51 +72,6 @@ authentifi
<li><img alt="" src="../images/down.gif" /> <a href="#example">Exemple</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="example" id="example">Exemple</a></h2>
<p>L'exemple ci-dessous pr<70>sente un exemple de combinaison avec
l'authentification <20> base de fichier htpasswd "normale", et permet
la connexion d'utilisateurs en tant qu'invit<69>s avec les propri<72>t<EFBFBD>s
suivantes :</p>
<ul>
<li>Il incite l'utilisateur <20> fournir un identifiant.
(<code class="directive"><a href="#anonymous_nouserid">Anonymous_NoUserID</a></code>)</li>
<li>Il incite l'utilisateur <20> fournir un mot de passe.
(<code class="directive"><a href="#anonymous_mustgiveemail">Anonymous_MustGiveEmail</a></code>)</li>
<li>Le mot de passe fourni doit <20>tre une adresse email valide,
c'est <20> dire contenant au moins un '@' et un '.'.
(<code class="directive"><a href="#anonymous_verifyemail">Anonymous_VerifyEmail</a></code>)</li>
<li>Les valeurs possibles pour l'identifiant utilisateur sont
<code>anonymous, guest, www, test ou welcome</code>, et la
v<>rification n'est <strong>pas</strong> sensible <20> la casse.
(<code class="directive"><a href="#anonymous">Anonymous</a></code>)</li>
<li>Les adresses email entr<74>es dans le champ passwd sont
enregistr<74>es dans le fichier journal des erreurs.
(<code class="directive"><a href="#anonymous_logemail">Anonymous_LogEmail</a></code>)</li>
</ul>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">&lt;Directory /var/www/html/private&gt;
AuthName "Use 'anonymous' &amp; Email address for guest entry"
AuthType Basic
AuthBasicProvider file anon
AuthUserFile /path/to/your/.htpasswd
Anonymous_NoUserID off
Anonymous_MustGiveEmail on
Anonymous_VerifyEmail on
Anonymous_LogEmail on
Anonymous anonymous guest www test welcome
Require valid-user
&lt;/Directory&gt;</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="anonymous" id="anonymous">Directive</a> <a name="Anonymous" id="Anonymous">Anonymous</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D<>finit la liste des identifiants utilisateur autoris<69>s <20>
@@ -225,6 +180,51 @@ email fournie comme mot de passe est correct</td></tr>
'.' afin d'inciter les utilisateurs <20> fournir des adresses email
valides (voir ci-dessus la directive <code class="directive"><a href="#anonymous_logemail">Anonymous_LogEmail</a></code>).</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="example" id="example">Exemple</a></h2>
<p>L'exemple ci-dessous pr<70>sente un exemple de combinaison avec
l'authentification <20> base de fichier htpasswd "normale", et permet
la connexion d'utilisateurs en tant qu'invit<69>s avec les propri<72>t<EFBFBD>s
suivantes :</p>
<ul>
<li>Il incite l'utilisateur <20> fournir un identifiant.
(<code class="directive"><a href="#anonymous_nouserid">Anonymous_NoUserID</a></code>)</li>
<li>Il incite l'utilisateur <20> fournir un mot de passe.
(<code class="directive"><a href="#anonymous_mustgiveemail">Anonymous_MustGiveEmail</a></code>)</li>
<li>Le mot de passe fourni doit <20>tre une adresse email valide,
c'est <20> dire contenant au moins un '@' et un '.'.
(<code class="directive"><a href="#anonymous_verifyemail">Anonymous_VerifyEmail</a></code>)</li>
<li>Les valeurs possibles pour l'identifiant utilisateur sont
<code>anonymous, guest, www, test ou welcome</code>, et la
v<>rification n'est <strong>pas</strong> sensible <20> la casse.
(<code class="directive"><a href="#anonymous">Anonymous</a></code>)</li>
<li>Les adresses email entr<74>es dans le champ passwd sont
enregistr<74>es dans le fichier journal des erreurs.
(<code class="directive"><a href="#anonymous_logemail">Anonymous_LogEmail</a></code>)</li>
</ul>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">&lt;Directory /var/www/html/private&gt;
AuthName "Use 'anonymous' &amp; Email address for guest entry"
AuthType Basic
AuthBasicProvider file anon
AuthUserFile /path/to/your/.htpasswd
Anonymous_NoUserID off
Anonymous_MustGiveEmail on
Anonymous_VerifyEmail on
Anonymous_LogEmail on
Anonymous anonymous guest www test welcome
Require valid-user
&lt;/Directory&gt;</pre>
</div>
</div>
</div>
<div class="bottomlang">

View File

@@ -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">&lt;Directory /var/www/html/private&gt;
AuthName "Use 'anonymous' &amp; Email address for guest entry"
AuthType Basic
AuthBasicProvider file anon
AuthUserFile /path/to/your/.htpasswd
Anonymous_NoUserID off
Anonymous_MustGiveEmail on
Anonymous_VerifyEmail on
Anonymous_LogEmail on
Anonymous anonymous guest www test welcome
Require valid-user
&lt;/Directory&gt;</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="Anonymous" id="Anonymous">Anonymous</a> <a name="anonymous" id="anonymous">ディレクティブ</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>パスワードの検査無しでアクセスを許可する userID を指定する
@@ -212,6 +169,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">&lt;Directory /var/www/html/private&gt;
AuthName "Use 'anonymous' &amp; Email address for guest entry"
AuthType Basic
AuthBasicProvider file anon
AuthUserFile /path/to/your/.htpasswd
Anonymous_NoUserID off
Anonymous_MustGiveEmail on
Anonymous_VerifyEmail on
Anonymous_LogEmail on
Anonymous anonymous guest www test welcome
Require valid-user
&lt;/Directory&gt;</pre>
</div>
</div>
</div>
<div class="bottomlang">

View File

@@ -66,51 +66,6 @@
<li><img alt="" src="../images/down.gif" /> <a href="#example"><3E><><EFBFBD><EFBFBD></a></li>
</ul><ul class="seealso"><li><a href="#comments_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"><3E><><EFBFBD><EFBFBD></a></h2>
<p><3E><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> "<22>Ϲ<EFBFBD><CFB9><EFBFBD><EFBFBD><EFBFBD>" htpasswd-<2D><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD><DFB0><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵٸ<D1B4> '<27>մ<EFBFBD>(guest)'<27><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><> <20>ֵ<EFBFBD><D6B5><EFBFBD> <20>Ѵ<EFBFBD>:</p>
<ul>
<li><3E><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD> <20>Է<EFBFBD><D4B7>ؾ<EFBFBD> <20>Ѵ<EFBFBD>. (<code class="directive"><a href="#anonymous_nouserid">Anonymous_NoUserID</a></code>)</li>
<li><3E><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD> <20><>ȣ<EFBFBD><C8A3> <20>Է<EFBFBD><D4B7>ؾ<EFBFBD> <20>Ѵ<EFBFBD>. (<code class="directive"><a href="#anonymous_mustgiveemail">Anonymous_MustGiveEmail</a></code>)</li>
<li><3E><>ȣ<EFBFBD><C8A3> <20><>ȿ<EFBFBD><C8BF> <20><><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> <20>ּҸ<D6BC> <20>Է<EFBFBD><D4B7>ؾ<EFBFBD> <20>Ѵ<EFBFBD>. <em><3E><><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD></em> <20>ּ<EFBFBD><D6BC><EFBFBD> '@'<27><> '.' <20>Ѱ<EFBFBD><D1B0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD> <20>Ѵ<EFBFBD>. (<code class="directive"><a href="#anonymous_verifyemail">Anonymous_VerifyEmail</a></code>)</li>
<li><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD> <code>anonymous guest www test
welcome</code> <20><> <20>ϳ<EFBFBD><CFB3≯<EFBFBD>, <20><><EFBFBD>ҹ<EFBFBD><D2B9>ڸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<strong><3E>ʴ´<CAB4></strong>. (<code class="directive"><a href="#anonymous">Anonymous</a></code>)</li>
<li><3E>׸<EFBFBD><D7B8><EFBFBD> <20><>ȣ<EFBFBD><C8A3> <20>Է<EFBFBD><D4B7><EFBFBD> <20><><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> <20>ּҸ<D6BC> <20><><EFBFBD><EFBFBD><EFBFBD>α<EFBFBD><CEB1><EFBFBD><EFBFBD>Ͽ<EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>. (<code class="directive"><a href="#anonymous_logemail">Anonymous_LogEmail</a></code>)</li>
</ul>
<div class="example"><h3><3E><><EFBFBD><EFBFBD></h3><p><code>
&lt;Directory /foo&gt;
<span class="indent">
AuthName "<22>մ<EFBFBD><D5B4><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD> 'anonymous'<27><> <20><><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> <20>ּҸ<D6BC> <20><><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD>"<br />
AuthType Basic<br />
AuthBasicProvider file anon<br />
AuthUserFile /path/to/your/.htpasswd<br />
<br />
Anonymous_NoUserID off<br />
Anonymous_MustGiveEmail on<br />
Anonymous_VerifyEmail on<br />
Anonymous_LogEmail on<br />
Anonymous anonymous guest www test welcome<br />
<br />
Order Deny,Allow<br />
Allow from all<br />
<br />
Require valid-user<br />
</span>
&lt;/Directory&gt;
</code></p></div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="Anonymous" id="Anonymous">Anonymous</a> <a name="anonymous" id="anonymous"><3E><><EFBFBD>þ<EFBFBD></a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description"><3E><><EFBFBD><EFBFBD>:</a></th><td><3E><>ȣ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD>
@@ -206,6 +161,51 @@
<20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD> <20>˻<EFBFBD><CBBB>Ѵ<EFBFBD> (<28><><EFBFBD><EFBFBD> <code class="directive"><a href="#anonymous_logemail">Anonymous_LogEmail</a></code> <20><><EFBFBD><EFBFBD>).</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"><3E><><EFBFBD><EFBFBD></a></h2>
<p><3E><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> "<22>Ϲ<EFBFBD><CFB9><EFBFBD><EFBFBD><EFBFBD>" htpasswd-<2D><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD><DFB0><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵٸ<D1B4> '<27>մ<EFBFBD>(guest)'<27><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><> <20>ֵ<EFBFBD><D6B5><EFBFBD> <20>Ѵ<EFBFBD>:</p>
<ul>
<li><3E><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD> <20>Է<EFBFBD><D4B7>ؾ<EFBFBD> <20>Ѵ<EFBFBD>. (<code class="directive"><a href="#anonymous_nouserid">Anonymous_NoUserID</a></code>)</li>
<li><3E><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD> <20><>ȣ<EFBFBD><C8A3> <20>Է<EFBFBD><D4B7>ؾ<EFBFBD> <20>Ѵ<EFBFBD>. (<code class="directive"><a href="#anonymous_mustgiveemail">Anonymous_MustGiveEmail</a></code>)</li>
<li><3E><>ȣ<EFBFBD><C8A3> <20><>ȿ<EFBFBD><C8BF> <20><><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> <20>ּҸ<D6BC> <20>Է<EFBFBD><D4B7>ؾ<EFBFBD> <20>Ѵ<EFBFBD>. <em><3E><><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD></em> <20>ּ<EFBFBD><D6BC><EFBFBD> '@'<27><> '.' <20>Ѱ<EFBFBD><D1B0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD> <20>Ѵ<EFBFBD>. (<code class="directive"><a href="#anonymous_verifyemail">Anonymous_VerifyEmail</a></code>)</li>
<li><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD> <code>anonymous guest www test
welcome</code> <20><> <20>ϳ<EFBFBD><CFB3≯<EFBFBD>, <20><><EFBFBD>ҹ<EFBFBD><D2B9>ڸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<strong><3E>ʴ´<CAB4></strong>. (<code class="directive"><a href="#anonymous">Anonymous</a></code>)</li>
<li><3E>׸<EFBFBD><D7B8><EFBFBD> <20><>ȣ<EFBFBD><C8A3> <20>Է<EFBFBD><D4B7><EFBFBD> <20><><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> <20>ּҸ<D6BC> <20><><EFBFBD><EFBFBD><EFBFBD>α<EFBFBD><CEB1><EFBFBD><EFBFBD>Ͽ<EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>. (<code class="directive"><a href="#anonymous_logemail">Anonymous_LogEmail</a></code>)</li>
</ul>
<div class="example"><h3><3E><><EFBFBD><EFBFBD></h3><p><code>
&lt;Directory /foo&gt;
<span class="indent">
AuthName "<22>մ<EFBFBD><D5B4><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD> 'anonymous'<27><> <20><><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> <20>ּҸ<D6BC> <20><><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD>"<br />
AuthType Basic<br />
AuthBasicProvider file anon<br />
AuthUserFile /path/to/your/.htpasswd<br />
<br />
Anonymous_NoUserID off<br />
Anonymous_MustGiveEmail on<br />
Anonymous_VerifyEmail on<br />
Anonymous_LogEmail on<br />
Anonymous anonymous guest www test welcome<br />
<br />
Order Deny,Allow<br />
Allow from all<br />
<br />
Require valid-user<br />
</span>
&lt;/Directory&gt;
</code></p></div>
</div>
</div>
<div class="bottomlang">
<p><span><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: </span><a href="../en/mod/mod_authn_anon.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -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
&lt;AuthnProviderAlias file file1&gt;
AuthUserFile "/www/conf/passwords1"
&lt;/AuthnProviderAlias&gt;
# Then check here
&lt;AuthnProviderAlias file file2&gt;
AuthUserFile "/www/conf/passwords2"
&lt;/AuthnProviderAlias&gt;
&lt;Directory "/var/web/pages/secure"&gt;
AuthBasicProvider file1 file2
AuthType Basic
AuthName "Protected Area"
Require valid-user
&lt;/Directory&gt;</pre>
</div>
<p>The example below creates two different ldap authentication
provider aliases based on the ldap provider. This allows
a single authenticated location to be serviced by multiple ldap
hosts:</p>
<div class="example"><h3>Checking multiple LDAP servers</h3><pre class="prettyprint lang-config">&lt;AuthnProviderAlias ldap ldap-alias1&gt;
AuthLDAPBindDN "cn=youruser,o=ctx"
AuthLDAPBindPassword yourpassword
AuthLDAPURL "ldap://ldap.host/o=ctx"
&lt;/AuthnProviderAlias&gt;
&lt;AuthnProviderAlias ldap ldap-other-alias&gt;
AuthLDAPBindDN "cn=yourotheruser,o=dev"
AuthLDAPBindPassword yourotherpassword
AuthLDAPURL "ldap://other.ldap.host/o=dev?cn"
&lt;/AuthnProviderAlias&gt;
Alias "/secure" "/webpages/secure"
&lt;Directory "/webpages/secure"&gt;
Order deny,allow
Allow from all
AuthBasicProvider ldap-other-alias ldap-alias1
AuthType Basic
AuthName "LDAP Protected Place"
Require valid-user
# Note that Require ldap-* would not work here, since the
# AuthnProviderAlias does not provide the config to authorization providers
# that are implemented in the same module as the authentication provider.
&lt;/Directory&gt;</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AuthName" id="AuthName">AuthName</a> <a name="authname" id="authname">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Authorization realm for use in HTTP
@@ -248,6 +176,78 @@ the specified alias</td></tr>
<li><a href="../howto/auth.html">Authentication, Authorization,
and Access Control</a></li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="authnalias" id="authnalias">Creating Authentication Provider Aliases</a></h2>
<p>Extended authentication providers can be created
within the configuration file and assigned an alias name. The alias
providers can then be referenced through the directives
<code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> or
<code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code> in
the same way as a base authentication provider. Besides the ability
to create and alias an extended provider, it also allows the same
extended authentication provider to be reference by multiple
locations.</p>
<h3><a name="example" id="example">Examples</a></h3>
<p>This example checks for passwords in two different text
files.</p>
<div class="example"><h3>Checking multiple text password files</h3><pre class="prettyprint lang-config"># Check here first
&lt;AuthnProviderAlias file file1&gt;
AuthUserFile "/www/conf/passwords1"
&lt;/AuthnProviderAlias&gt;
# Then check here
&lt;AuthnProviderAlias file file2&gt;
AuthUserFile "/www/conf/passwords2"
&lt;/AuthnProviderAlias&gt;
&lt;Directory "/var/web/pages/secure"&gt;
AuthBasicProvider file1 file2
AuthType Basic
AuthName "Protected Area"
Require valid-user
&lt;/Directory&gt;</pre>
</div>
<p>The example below creates two different ldap authentication
provider aliases based on the ldap provider. This allows
a single authenticated location to be serviced by multiple ldap
hosts:</p>
<div class="example"><h3>Checking multiple LDAP servers</h3><pre class="prettyprint lang-config">&lt;AuthnProviderAlias ldap ldap-alias1&gt;
AuthLDAPBindDN "cn=youruser,o=ctx"
AuthLDAPBindPassword yourpassword
AuthLDAPURL "ldap://ldap.host/o=ctx"
&lt;/AuthnProviderAlias&gt;
&lt;AuthnProviderAlias ldap ldap-other-alias&gt;
AuthLDAPBindDN "cn=yourotheruser,o=dev"
AuthLDAPBindPassword yourotherpassword
AuthLDAPURL "ldap://other.ldap.host/o=dev?cn"
&lt;/AuthnProviderAlias&gt;
Alias "/secure" "/webpages/secure"
&lt;Directory "/webpages/secure"&gt;
Order deny,allow
Allow from all
AuthBasicProvider ldap-other-alias ldap-alias1
AuthType Basic
AuthName "LDAP Protected Place"
Require valid-user
# Note that Require ldap-* would not work here, since the
# AuthnProviderAlias does not provide the config to authorization providers
# that are implemented in the same module as the authentication provider.
&lt;/Directory&gt;</pre>
</div>
</div>
</div>
<div class="bottomlang">

View File

@@ -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">Cr<43>ation d'alias de fournisseurs
d'authentification</a></h2>
<p>Il est possible de cr<63>er des fournisseurs d'authentification
<20>tendus dans le fichier de configuration et de leur assigner un
alias. Le fournisseur ainsi nomm<6D> peut alors <20>tre r<>f<EFBFBD>renc<6E> <20> 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<69> de
cr<63>er et attribuer un alias <20> un fournisseur <20>tendu, le m<>me
fournisseur d'authentification peut aussi <20>tre r<>f<EFBFBD>renc<6E> par
plusieurs sections relatives <20> une zone du site web.</p>
<h3><a name="example" id="example">Exemples</a></h3>
<p>Cet exemple v<>rifie les mots de passe dans deux fichiers
textes diff<66>rents.</p>
<div class="example"><h3>V<>rification dans plusieurs fichiers de mots de
passe au format texte</h3><pre class="prettyprint lang-config"># Premi<6D>re v<>rification
&lt;AuthnProviderAlias file file1&gt;
AuthUserFile /www/conf/passwords1
&lt;/AuthnProviderAlias&gt;
# V<>rification suivante
&lt;AuthnProviderAlias file file2&gt;
AuthUserFile /www/conf/passwords2
&lt;/AuthnProviderAlias&gt;
&lt;Directory /var/web/pages/secure&gt;
AuthBasicProvider file1 file2
AuthType Basic
AuthName "Protected Area"
Require valid-user
&lt;/Directory&gt;</pre>
</div>
<p>Dans l'exemple ci-dessous, deux fournisseurs
d'authentification ldap sont cr<63><72>s <20> partir du fournisseur ldap
de base, et se voient attribuer un alias. L'authentification
d'une m<>me zone peut alors <20>tre trait<69>e par plusieurs serveurs
ldap :</p>
<div class="example"><h3>V<>rification aupr<70>s de plusieurs serveurs
LDAP</h3><pre class="prettyprint lang-config">&lt;AuthnProviderAlias ldap ldap-alias1&gt;
AuthLDAPBindDN cn=youruser,o=ctx
AuthLDAPBindPassword yourpassword
AuthLDAPURL ldap://ldap.host/o=ctx
&lt;/AuthnProviderAlias&gt;
&lt;AuthnProviderAlias ldap ldap-other-alias&gt;
AuthLDAPBindDN cn=yourotheruser,o=dev
AuthLDAPBindPassword yourotherpassword
AuthLDAPURL ldap://other.ldap.host/o=dev?cn
&lt;/AuthnProviderAlias&gt;
Alias /secure /webpages/secure
&lt;Directory /webpages/secure&gt;
Order deny,allow
Allow from all
AuthBasicProvider ldap-other-alias ldap-alias1
AuthType Basic
AuthName LDAP_Protected Place
Require valid-user
# Notez que Require ldap-* ne fonctionnerait pas ici, car
# AuthnProviderAlias ne fournit pas de configuration pour les
# fournisseurs d'autorisation impl<70>ment<6E>s dans le m<>me module que le
# fournisseur d'authentification.
&lt;/Directory&gt;</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="authname" id="authname">Directive</a> <a name="AuthName" id="AuthName">AuthName</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'identifiant de l'autorisation <20> utiliser avec
@@ -264,6 +186,84 @@ l'alias sp
<li><a href="../howto/auth.html">Authentification, autorisation et contr<74>le
d'acc<63>s</a></li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="authnalias" id="authnalias">Cr<43>ation d'alias de fournisseurs
d'authentification</a></h2>
<p>Il est possible de cr<63>er des fournisseurs d'authentification
<20>tendus dans le fichier de configuration et de leur assigner un
alias. Le fournisseur ainsi nomm<6D> peut alors <20>tre r<>f<EFBFBD>renc<6E> <20> 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<69> de
cr<63>er et attribuer un alias <20> un fournisseur <20>tendu, le m<>me
fournisseur d'authentification peut aussi <20>tre r<>f<EFBFBD>renc<6E> par
plusieurs sections relatives <20> une zone du site web.</p>
<h3><a name="example" id="example">Exemples</a></h3>
<p>Cet exemple v<>rifie les mots de passe dans deux fichiers
textes diff<66>rents.</p>
<div class="example"><h3>V<>rification dans plusieurs fichiers de mots de
passe au format texte</h3><pre class="prettyprint lang-config"># Premi<6D>re v<>rification
&lt;AuthnProviderAlias file file1&gt;
AuthUserFile /www/conf/passwords1
&lt;/AuthnProviderAlias&gt;
# V<>rification suivante
&lt;AuthnProviderAlias file file2&gt;
AuthUserFile /www/conf/passwords2
&lt;/AuthnProviderAlias&gt;
&lt;Directory /var/web/pages/secure&gt;
AuthBasicProvider file1 file2
AuthType Basic
AuthName "Protected Area"
Require valid-user
&lt;/Directory&gt;</pre>
</div>
<p>Dans l'exemple ci-dessous, deux fournisseurs
d'authentification ldap sont cr<63><72>s <20> partir du fournisseur ldap
de base, et se voient attribuer un alias. L'authentification
d'une m<>me zone peut alors <20>tre trait<69>e par plusieurs serveurs
ldap :</p>
<div class="example"><h3>V<>rification aupr<70>s de plusieurs serveurs
LDAP</h3><pre class="prettyprint lang-config">&lt;AuthnProviderAlias ldap ldap-alias1&gt;
AuthLDAPBindDN cn=youruser,o=ctx
AuthLDAPBindPassword yourpassword
AuthLDAPURL ldap://ldap.host/o=ctx
&lt;/AuthnProviderAlias&gt;
&lt;AuthnProviderAlias ldap ldap-other-alias&gt;
AuthLDAPBindDN cn=yourotheruser,o=dev
AuthLDAPBindPassword yourotherpassword
AuthLDAPURL ldap://other.ldap.host/o=dev?cn
&lt;/AuthnProviderAlias&gt;
Alias /secure /webpages/secure
&lt;Directory /webpages/secure&gt;
Order deny,allow
Allow from all
AuthBasicProvider ldap-other-alias ldap-alias1
AuthType Basic
AuthName LDAP_Protected Place
Require valid-user
# Notez que Require ldap-* ne fonctionnerait pas ici, car
# AuthnProviderAlias ne fournit pas de configuration pour les
# fournisseurs d'autorisation impl<70>ment<6E>s dans le m<>me module que le
# fournisseur d'authentification.
&lt;/Directory&gt;</pre>
</div>
</div>
</div>
<div class="bottomlang">

View File

@@ -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">&nbsp;en&nbsp;</a> |

View File

@@ -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>Requ<71>te SQL servant <20> v<>rifier le mot de passe d'un
utilisateur</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthDBDUserPWQuery <var>requ<71>te</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>r<>pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authn_dbd</td></tr>
</table>
<p>La directive <code class="directive">AuthDBDUserPWQuery</code> permet de
sp<73>cifier une requ<71>te servant <20> v<>rifier le mot de passe d'un
utilisateur donn<6E>. L'identifiant utilisateur sera transmis comme
param<61>tre sous forme d'une seule cha<68>ne de caract<63>res lorsque la
requ<71>te sera ex<65>cut<75>e. Cet identifiant est r<>f<EFBFBD>renc<6E> dans la requ<71>te
en utilisant le sp<73>cificateur de format <code>%s</code>.</p>
<pre class="prettyprint lang-config">AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"</pre>
<p>La premi<6D>re colonne du premier enregistrement renvoy<6F> par la
requ<71>te se pr<70>sentera sous la forme d'une cha<68>ne de caract<63>res
contenant le mot de passe chiffr<66>. Les enregistrements suivants sont
ignor<6F>s. Si aucun enregistrement n'est renvoy<6F>, l'utilisateur ne
sera pas authentifi<66> par <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.</p>
<p>Si httpd a <20>t<EFBFBD> compil<69> avec la version 1.3.0 ou sup<75>rieure de
l'<a class="glossarylink" href="../glossary.html#apr" title="voir glossaire">APR</a>, toute valeur de colonne suppl<70>mentaire
du premier enregistrement renvoy<6F> par la requ<71>te sera stock<63>e dans
une variable d'environnement dont le nom aura la forme
<code>AUTHENTICATE_<var>valeur-colonne</var></code>.
</p>
<p>Le format du mot de passe chiffr<66> d<>pend du frontal
d'authentification utilis<69> (par exemple
<code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> ou
<code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code>). Voir la documentation sur les <a href="../misc/password_encryptions.html">Formats de mots de passe</a> pour
plus de d<>tails.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="authdbduserrealmquery" id="authdbduserrealmquery">Directive</a> <a name="AuthDBDUserRealmQuery" id="AuthDBDUserRealmQuery">AuthDBDUserRealmQuery</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Requ<71>te SQL servant <20> v<>rifier une empreinte de mot de
passe pour un utilisateur et un identifiant d'authentification.
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthDBDUserRealmQuery <var>requ<71>te</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>r<>pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authn_dbd</td></tr>
</table>
<p>La directive <code class="directive">AuthDBDUserRealmQuery</code> sp<73>cifie
une requ<71>te SQL servant <20> v<>rifier une empreinte de mot
de passe pour un utilisateur et un identifiant d'authentification
donn<6E>s au cours d'un processus d'authentification digest. Les
identifiants de l'utilisateur et de l'authentification
sont pass<73>s dans cet ordre comme param<61>tres <20> l'ex<65>cution de la
requ<71>te. Ils sont r<>f<EFBFBD>renc<6E>s dans la cha<68>ne de la requ<71>te en
utilisant des sp<73>cificateurs de format <code>%s</code>.</p>
<pre class="prettyprint lang-config">AuthDBDUserRealmQuery "SELECT password FROM authn WHERE user = %s AND realm = %s"</pre>
<p>La premi<6D>re colonne du premier enregistrement renvoy<6F> par la
requ<71>te se pr<70>sentera sous la forme d'une cha<68>ne de caract<63>res
contenant le mot de passe chiffr<66>. Les enregistrements suivants
seront ignor<6F>s. Si aucun enregistrement n'est renvoy<6F>, l'utilisateur
ne sera pas authentifi<66> par <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.</p>
<p>Si httpd a <20>t<EFBFBD> compil<69> avec une version 1.3.0 ou sup<75>rieure de
l'<a class="glossarylink" href="../glossary.html#apr" title="voir glossaire">APR</a>, toute valeur de colonne suppl<70>mentaire
du premier enregistrement renvoy<6F> par la requ<71>te sera stock<63>e dans
une variable d'environnement avec un nom de la forme
<code>AUTHENTICATE_<var>COLONNE</var></code>.
</p>
<p>Le format du mot de passe chiffr<66> d<>pend du frontal
d'authentification utilis<69> (par exemple
<code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> ou
<code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code>). Voir la documentation sur les <a href="../misc/password_encryptions.html">Formats de mots de passe</a> pour
plus de d<>tails.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="socache" id="socache">Performances et mise en cache</a></h2>
@@ -158,81 +233,6 @@ configuration n
<code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> pour plus d'informations <20> propos de la
s<>curit<69> dans ce domaine.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="authdbduserpwquery" id="authdbduserpwquery">Directive</a> <a name="AuthDBDUserPWQuery" id="AuthDBDUserPWQuery">AuthDBDUserPWQuery</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Requ<71>te SQL servant <20> v<>rifier le mot de passe d'un
utilisateur</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthDBDUserPWQuery <var>requ<71>te</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>r<>pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authn_dbd</td></tr>
</table>
<p>La directive <code class="directive">AuthDBDUserPWQuery</code> permet de
sp<73>cifier une requ<71>te servant <20> v<>rifier le mot de passe d'un
utilisateur donn<6E>. L'identifiant utilisateur sera transmis comme
param<61>tre sous forme d'une seule cha<68>ne de caract<63>res lorsque la
requ<71>te sera ex<65>cut<75>e. Cet identifiant est r<>f<EFBFBD>renc<6E> dans la requ<71>te
en utilisant le sp<73>cificateur de format <code>%s</code>.</p>
<pre class="prettyprint lang-config">AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"</pre>
<p>La premi<6D>re colonne du premier enregistrement renvoy<6F> par la
requ<71>te se pr<70>sentera sous la forme d'une cha<68>ne de caract<63>res
contenant le mot de passe chiffr<66>. Les enregistrements suivants sont
ignor<6F>s. Si aucun enregistrement n'est renvoy<6F>, l'utilisateur ne
sera pas authentifi<66> par <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.</p>
<p>Si httpd a <20>t<EFBFBD> compil<69> avec la version 1.3.0 ou sup<75>rieure de
l'<a class="glossarylink" href="../glossary.html#apr" title="voir glossaire">APR</a>, toute valeur de colonne suppl<70>mentaire
du premier enregistrement renvoy<6F> par la requ<71>te sera stock<63>e dans
une variable d'environnement dont le nom aura la forme
<code>AUTHENTICATE_<var>valeur-colonne</var></code>.
</p>
<p>Le format du mot de passe chiffr<66> d<>pend du frontal
d'authentification utilis<69> (par exemple
<code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> ou
<code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code>). Voir la documentation sur les <a href="../misc/password_encryptions.html">Formats de mots de passe</a> pour
plus de d<>tails.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="authdbduserrealmquery" id="authdbduserrealmquery">Directive</a> <a name="AuthDBDUserRealmQuery" id="AuthDBDUserRealmQuery">AuthDBDUserRealmQuery</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Requ<71>te SQL servant <20> v<>rifier une empreinte de mot de
passe pour un utilisateur et un identifiant d'authentification.
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthDBDUserRealmQuery <var>requ<71>te</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>r<>pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authn_dbd</td></tr>
</table>
<p>La directive <code class="directive">AuthDBDUserRealmQuery</code> sp<73>cifie
une requ<71>te SQL servant <20> v<>rifier une empreinte de mot
de passe pour un utilisateur et un identifiant d'authentification
donn<6E>s au cours d'un processus d'authentification digest. Les
identifiants de l'utilisateur et de l'authentification
sont pass<73>s dans cet ordre comme param<61>tres <20> l'ex<65>cution de la
requ<71>te. Ils sont r<>f<EFBFBD>renc<6E>s dans la cha<68>ne de la requ<71>te en
utilisant des sp<73>cificateurs de format <code>%s</code>.</p>
<pre class="prettyprint lang-config">AuthDBDUserRealmQuery "SELECT password FROM authn WHERE user = %s AND realm = %s"</pre>
<p>La premi<6D>re colonne du premier enregistrement renvoy<6F> par la
requ<71>te se pr<70>sentera sous la forme d'une cha<68>ne de caract<63>res
contenant le mot de passe chiffr<66>. Les enregistrements suivants
seront ignor<6F>s. Si aucun enregistrement n'est renvoy<6F>, l'utilisateur
ne sera pas authentifi<66> par <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.</p>
<p>Si httpd a <20>t<EFBFBD> compil<69> avec une version 1.3.0 ou sup<75>rieure de
l'<a class="glossarylink" href="../glossary.html#apr" title="voir glossaire">APR</a>, toute valeur de colonne suppl<70>mentaire
du premier enregistrement renvoy<6F> par la requ<71>te sera stock<63>e dans
une variable d'environnement avec un nom de la forme
<code>AUTHENTICATE_<var>COLONNE</var></code>.
</p>
<p>Le format du mot de passe chiffr<66> d<>pend du frontal
d'authentification utilis<69> (par exemple
<code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> ou
<code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code>). Voir la documentation sur les <a href="../misc/password_encryptions.html">Formats de mots de passe</a> pour
plus de d<>tails.</p>
</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_authn_dbd.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -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">&nbsp;en&nbsp;</a> |

View File

@@ -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">&nbsp;en&nbsp;</a> |

View File

@@ -68,7 +68,6 @@
<code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code>
</li>
</ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AuthDBMType" id="AuthDBMType">AuthDBMType</a> <a name="authdbmtype" id="authdbmtype">ディレクティブ</a></h2>
<table class="directive">
@@ -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">&nbsp;en&nbsp;</a> |

View File

@@ -64,7 +64,6 @@
<code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code>
</li>
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AuthDBMType" id="AuthDBMType">AuthDBMType</a> <a name="authdbmtype" id="authdbmtype"><3E><><EFBFBD>þ<EFBFBD></a></h2>
<table class="directive">
@@ -124,6 +123,7 @@
DBM<42><4D><EFBFBD><EFBFBD> <20><>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.</p>
</div>
</div>
<div class="bottomlang">
<p><span><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: </span><a href="../en/mod/mod_authn_dbm.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -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">&nbsp;en&nbsp;</a> |

View File

@@ -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">&nbsp;en&nbsp;</a> |

View File

@@ -67,7 +67,6 @@
<li><code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code></li>
<li><code class="program"><a href="../programs/htdigest.html">htdigest</a></code></li>
</ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AuthUserFile" id="AuthUserFile">AuthUserFile</a> <a name="authuserfile" id="authuserfile">ディレクティブ</a></h2>
<table class="directive">
@@ -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">&nbsp;en&nbsp;</a> |

View File

@@ -63,7 +63,6 @@
<li><a href="../programs/htpasswd.html">htpasswd</a></li>
<li><a href="../programs/htdigest.html">htdigest</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AuthUserFile" id="AuthUserFile">AuthUserFile</a> <a name="authuserfile" id="authuserfile"><3E><><EFBFBD>þ<EFBFBD></a></h2>
<table class="directive">
@@ -122,6 +121,7 @@
</div>
</div>
</div>
<div class="bottomlang">
<p><span><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: </span><a href="../en/mod/mod_authn_file.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -53,61 +53,6 @@ the load on backends</td></tr>
<li><img alt="" src="../images/down.gif" /> <a href="#dev">Cacheing with custom modules</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="intro" id="intro">Authentication Cacheing</a></h2>
<p>Some users of more heavyweight authentication such as SQL database
lookups (<code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>) have reported it putting an
unacceptable load on their authentication provider. A typical case
in point is where an HTML page contains hundreds of objects
(images, scripts, stylesheets, media, etc), and a request to the page
generates hundreds of effectively-immediate requests for authenticated
additional contents.</p>
<p>mod_authn_socache provides a solution to this problem by
maintaining a cache of authentication credentials.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="usage" id="usage">Usage</a></h2>
<p>The authentication cache should be used where authentication
lookups impose a significant load on the server, or a backend or
network. Authentication by file (<code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>)
or dbm (<code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code>) are unlikely to benefit,
as these are fast and lightweight in their own right (though in some
cases, such as a network-mounted file, cacheing may be worthwhile).
Other providers such as SQL or LDAP based authentication are more
likely to benefit, particularly where there is an observed
performance issue. Amongst the standard modules, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> manages its own cache, so only
<code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> will usually benefit from this cache.</p>
<p>The basic rules to cache for a provider are:</p>
<ol><li>Include the provider you're cacheing for in an
<code class="directive">AuthnCacheProvideFor</code> directive.</li>
<li>List <var>socache</var> ahead of the provider you're
cacheing for in your <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> or <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code> directive.</li>
</ol>
<p>A simple usage example to accelerate <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>
using dbm as a cache engine:</p>
<pre class="prettyprint lang-config">#AuthnCacheSOCache is optional. If specified, it is server-wide
AuthnCacheSOCache dbm
&lt;Directory /usr/www/myhost/private&gt;
AuthType Basic
AuthName "Cached Authentication Example"
AuthBasicProvider socache dbd
AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"
AuthnCacheProvideFor dbd
Require valid-user
#Optional
AuthnCacheContext dbd-authn-example
&lt;/Directory&gt;</pre>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="dev" id="dev">Cacheing with custom modules</a></h2>
<p>Module developers should note that their modules must be enabled
for cacheing with mod_authn_socache. A single optional API function
<var>ap_authn_cache_store</var> is provided to cache credentials
a provider has just looked up or generated. Usage examples are
available in <a href="http://svn.eu.apache.org/viewvc?view=revision&amp;revision=957072">r957072</a>, in which three authn providers are enabled for cacheing.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AuthnCacheContext" id="AuthnCacheContext">AuthnCacheContext</a> <a name="authncachecontext" id="authncachecontext">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specify a context string for use in the cache key</td></tr>
@@ -222,6 +167,61 @@ Apache HTTP Server 2.4.7 and later</td></tr>
your timeout.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="intro" id="intro">Authentication Cacheing</a></h2>
<p>Some users of more heavyweight authentication such as SQL database
lookups (<code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>) have reported it putting an
unacceptable load on their authentication provider. A typical case
in point is where an HTML page contains hundreds of objects
(images, scripts, stylesheets, media, etc), and a request to the page
generates hundreds of effectively-immediate requests for authenticated
additional contents.</p>
<p>mod_authn_socache provides a solution to this problem by
maintaining a cache of authentication credentials.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="usage" id="usage">Usage</a></h2>
<p>The authentication cache should be used where authentication
lookups impose a significant load on the server, or a backend or
network. Authentication by file (<code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>)
or dbm (<code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code>) are unlikely to benefit,
as these are fast and lightweight in their own right (though in some
cases, such as a network-mounted file, cacheing may be worthwhile).
Other providers such as SQL or LDAP based authentication are more
likely to benefit, particularly where there is an observed
performance issue. Amongst the standard modules, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> manages its own cache, so only
<code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> will usually benefit from this cache.</p>
<p>The basic rules to cache for a provider are:</p>
<ol><li>Include the provider you're cacheing for in an
<code class="directive">AuthnCacheProvideFor</code> directive.</li>
<li>List <var>socache</var> ahead of the provider you're
cacheing for in your <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> or <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code> directive.</li>
</ol>
<p>A simple usage example to accelerate <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>
using dbm as a cache engine:</p>
<pre class="prettyprint lang-config">#AuthnCacheSOCache is optional. If specified, it is server-wide
AuthnCacheSOCache dbm
&lt;Directory /usr/www/myhost/private&gt;
AuthType Basic
AuthName "Cached Authentication Example"
AuthBasicProvider socache dbd
AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"
AuthnCacheProvideFor dbd
Require valid-user
#Optional
AuthnCacheContext dbd-authn-example
&lt;/Directory&gt;</pre>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="dev" id="dev">Cacheing with custom modules</a></h2>
<p>Module developers should note that their modules must be enabled
for cacheing with mod_authn_socache. A single optional API function
<var>ap_authn_cache_store</var> is provided to cache credentials
a provider has just looked up or generated. Usage examples are
available in <a href="http://svn.eu.apache.org/viewvc?view=revision&amp;revision=957072">r957072</a>, in which three authn providers are enabled for cacheing.</p>
</div>
</div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/mod/mod_authn_socache.html" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -53,73 +53,6 @@ la charge des serveurs d'arri
<li><img alt="" src="../images/down.gif" /> <a href="#dev">La mise en cache avec les modules tiers</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="intro" id="intro">Mise en cache des donn<6E>es d'authentification</a></h2>
<p>Certains utilisateurs qui mettent oeuvre une authentification
lourde s'appuyant par exemple sur des requ<71>tes SQL
(<code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>) ont signal<61> une charge induite
inacceptable sur leur fournisseur d'authentification. Cela se
produit typiquement dans le cas o<> une page HTML contient des
centaines d'objets (images, scripts, pages de styles, media,
etc...), et o<> une requ<71>te pour cette page g<>n<EFBFBD>re des centaines de
sous-requ<71>tes <20> effet imm<6D>diat pour des contenus suppl<70>mentaires
authentifi<66>s.</p>
<p>Pour r<>soudre ce probl<62>me, mod_authn_socache fournit une solution
qui permet de maintenir un cache des donn<6E>es d'authentification.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="usage" id="usage">Utilisation</a></h2>
<p>Le cache d'authentification doit <20>tre utilis<69> lorsque les
requ<71>tes d'authentification induisent une charge significative sur le
serveur, le serveur d'arri<72>re-plan ou le r<>seau. Cette mise en cache
n'apportera probablement aucune am<61>lioration dans le cas d'une
authentification <20> base de fichier (<code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>)
ou de base de donn<6E>es dbm (<code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code>) car ces
m<>thodes sont de par leur conception rapides et l<>g<EFBFBD>res (la mise en
cache peut cependant s'av<61>rer utile dans le cas o<> le fichier est
situ<74> sur un montage r<>seau). Les fournisseurs d'authentification
bas<61>s sur SQL ou LDAP ont plus de chances de tirer parti de cette
mise en cache, en particulier lorsqu'un probl<62>me de performances est
d<>tect<63>. <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> g<>rant son propre cache,
seul <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> est concern<72> par notre sujet.</p>
<p>Les principales r<>gles <20> appliquer pour la mise en cache sont :</p>
<ol><li>Inclure le fournisseur pour lequel vous voulez effectuer une
mise en cache dans une directive
<code class="directive">AuthnCacheProvideFor</code>.</li>
<li>Mettre <var>socache</var> avant le fournisseur pour lequel
vous voulez effectuer une mise en cache dans votre directive
<code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>
ou <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code>.</li>
</ol>
<p>Voici un exemple simple permettant d'acc<63>l<EFBFBD>rer
<code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> et utilisant dbm comme moteur de la
mise en cache :</p>
<pre class="prettyprint lang-config"> #AuthnCacheSOCache est optionnel. S'il est d<>fini, il l'est pour
#l'ensemble du serveur
AuthnCacheSOCache dbm
&lt;Directory /usr/www/myhost/private&gt;
AuthType Basic
AuthName "Cached Authentication Example"
AuthBasicProvider socache dbd
AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"
AuthnCacheProvideFor dbd
Require valid-user
#Optionnel
AuthnCacheContext dbd-authn-example
&lt;/Directory&gt;</pre>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="dev" id="dev">La mise en cache avec les modules tiers</a></h2>
<p>Les d<>veloppeurs de modules doivent savoir que la mise en cache
avec mod_authn_socache doit <20>tre activ<69>e dans leurs modules. La
fonction de l'API <var>ap_authn_cache_store</var> permet de
mettre en cache les donn<6E>es d'authentification qu'un fournisseur
vient de rechercher ou de g<>n<EFBFBD>rer. Vous trouverez des exemples
d'utilisation <20> <a href="http://svn.eu.apache.org/viewvc?view=revision&amp;revision=957072">r957072</a>, o<> trois fournisseurs authn sont activ<69>s pour la mise
en cache.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="authncachecontext" id="authncachecontext">Directive</a> <a name="AuthnCacheContext" id="AuthnCacheContext">AuthnCacheContext</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sp<53>cifie une cha<68>ne de contexte <20> utiliser dans la cl<63> du
@@ -251,6 +184,73 @@ utiliser</td></tr>
d<>finissez la dur<75>e de vie.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="intro" id="intro">Mise en cache des donn<6E>es d'authentification</a></h2>
<p>Certains utilisateurs qui mettent oeuvre une authentification
lourde s'appuyant par exemple sur des requ<71>tes SQL
(<code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>) ont signal<61> une charge induite
inacceptable sur leur fournisseur d'authentification. Cela se
produit typiquement dans le cas o<> une page HTML contient des
centaines d'objets (images, scripts, pages de styles, media,
etc...), et o<> une requ<71>te pour cette page g<>n<EFBFBD>re des centaines de
sous-requ<71>tes <20> effet imm<6D>diat pour des contenus suppl<70>mentaires
authentifi<66>s.</p>
<p>Pour r<>soudre ce probl<62>me, mod_authn_socache fournit une solution
qui permet de maintenir un cache des donn<6E>es d'authentification.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="usage" id="usage">Utilisation</a></h2>
<p>Le cache d'authentification doit <20>tre utilis<69> lorsque les
requ<71>tes d'authentification induisent une charge significative sur le
serveur, le serveur d'arri<72>re-plan ou le r<>seau. Cette mise en cache
n'apportera probablement aucune am<61>lioration dans le cas d'une
authentification <20> base de fichier (<code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>)
ou de base de donn<6E>es dbm (<code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code>) car ces
m<>thodes sont de par leur conception rapides et l<>g<EFBFBD>res (la mise en
cache peut cependant s'av<61>rer utile dans le cas o<> le fichier est
situ<74> sur un montage r<>seau). Les fournisseurs d'authentification
bas<61>s sur SQL ou LDAP ont plus de chances de tirer parti de cette
mise en cache, en particulier lorsqu'un probl<62>me de performances est
d<>tect<63>. <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> g<>rant son propre cache,
seul <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> est concern<72> par notre sujet.</p>
<p>Les principales r<>gles <20> appliquer pour la mise en cache sont :</p>
<ol><li>Inclure le fournisseur pour lequel vous voulez effectuer une
mise en cache dans une directive
<code class="directive">AuthnCacheProvideFor</code>.</li>
<li>Mettre <var>socache</var> avant le fournisseur pour lequel
vous voulez effectuer une mise en cache dans votre directive
<code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>
ou <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code>.</li>
</ol>
<p>Voici un exemple simple permettant d'acc<63>l<EFBFBD>rer
<code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> et utilisant dbm comme moteur de la
mise en cache :</p>
<pre class="prettyprint lang-config"> #AuthnCacheSOCache est optionnel. S'il est d<>fini, il l'est pour
#l'ensemble du serveur
AuthnCacheSOCache dbm
&lt;Directory /usr/www/myhost/private&gt;
AuthType Basic
AuthName "Cached Authentication Example"
AuthBasicProvider socache dbd
AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"
AuthnCacheProvideFor dbd
Require valid-user
#Optionnel
AuthnCacheContext dbd-authn-example
&lt;/Directory&gt;</pre>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="dev" id="dev">La mise en cache avec les modules tiers</a></h2>
<p>Les d<>veloppeurs de modules doivent savoir que la mise en cache
avec mod_authn_socache doit <20>tre activ<69>e dans leurs modules. La
fonction de l'API <var>ap_authn_cache_store</var> permet de
mettre en cache les donn<6E>es d'authentification qu'un fournisseur
vient de rechercher ou de g<>n<EFBFBD>rer. Vous trouverez des exemples
d'utilisation <20> <a href="http://svn.eu.apache.org/viewvc?view=revision&amp;revision=957072">r957072</a>, o<> trois fournisseurs authn sont activ<69>s pour la mise
en cache.</p>
</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_authn_socache.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -65,6 +65,127 @@ and Access Control</a></li>
<li><code class="module"><a href="../mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a></code></li>
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AuthnzFcgiCheckAuthnProvider" id="AuthnzFcgiCheckAuthnProvider">AuthnzFcgiCheckAuthnProvider</a> <a name="authnzfcgicheckauthnprovider" id="authnzfcgicheckauthnprovider">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enables a FastCGI application to handle the check_authn
authentication hook.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthnzFcgiCheckAuthnProvider <em>provider-name</em>|<code>None</code>
<em>option</em> ...</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>none</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_fcgi</td></tr>
</table>
<p>This directive is used to enable a FastCGI authorizer to
handle a specific processing phase of authentication or
authorization.</p>
<p>Some capabilities of FastCGI authorizers require enablement
using this directive instead of
<code class="directive">AuthBasicProvider</code>:</p>
<ul>
<li>Non-Basic authentication; generally, determining the user
id of the client and returning it from the authorizer; see the
<code>UserExpr</code> option below</li>
<li>Selecting a custom response code; for a non-200 response
from the authorizer, the code from the authorizer will be the
status of the response</li>
<li>Setting the body of a non-200 response; if the authorizer
provides a response body with a non-200 response, that body
will be returned to the client; up to 8192 bytes of text are
supported</li>
</ul>
<dl>
<dt><em>provider-name</em></dt>
<dd>This is the name of a provider defined with <code class="directive">
AuthnzFcgiDefineProvider</code>.</dd>
<dt><code>None</code></dt>
<dd>Specify <code>None</code> to disable a provider enabled
with this directive in an outer scope, such as in a parent
directory.</dd>
<dt><em>option</em></dt>
<dd>The following options are supported:
<dl>
<dt>Authoritative On|Off (default On)</dt>
<dd>This controls whether or not other modules are allowed
to run when this module has a FastCGI authorizer configured
and it fails the request.</dd>
<dt>DefaultUser <em>userid</em></dt>
<dd>When the authorizer returns success and <code>UserExpr</code>
is configured and evaluates to an empty string (e.g., authorizer
didn't return a variable), this value will be used as the user
id. This is typically used when the authorizer has a concept of
guest, or unauthenticated, users and guest users are mapped to
some specific user id for logging and other purposes.</dd>
<dt>RequireBasicAuth On|Off (default Off)</dt>
<dd>This controls whether or not Basic auth is required
before passing the request to the authorizer. If required,
the authorizer won't be invoked without a user id and
password; 401 will be returned for a request without that.</dd>
<dt>UserExpr <em>expr</em> (no default)</dt>
<dd>When Basic authentication isn't provided by the client
and the authorizer determines the user, this expression,
evaluated after calling the authorizer, determines the
user. The expression follows <a href="../expr.html">
ap_expr syntax</a> and must resolve to a string. A typical
use is to reference a <code>Variable-<em>XXX</em></code>
setting returned by the authorizer using an option like
<code>UserExpr "%{reqenv:<em>XXX</em>}"</code>. If
this option is specified and the user id can't be retrieved
using the expression after a successful authentication, the
request will be rejected with a 500 error.</dd>
</dl>
</dd>
</dl>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AuthnzFcgiDefineProvider" id="AuthnzFcgiDefineProvider">AuthnzFcgiDefineProvider</a> <a name="authnzfcgidefineprovider" id="authnzfcgidefineprovider">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Defines a FastCGI application as a provider for
authentication and/or authorization</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthnzFcgiDefineProvider <em>type</em> <em>provider-name</em>
<em>backend-address</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>none</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_fcgi</td></tr>
</table>
<p>This directive is used to define a FastCGI application as
a provider for a particular phase of authentication or
authorization.</p>
<dl>
<dt><em>type</em></dt>
<dd>This must be set to <em>authn</em> for authentication,
<em>authz</em> for authorization, or <em>authnz</em> for
a generic FastCGI authorizer which performs both checks.</dd>
<dt><em>provider-name</em></dt>
<dd>This is used to assign a name to the provider which is
used in other directives such as
<code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>
and
<code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>.</dd>
<dt><em>backend-address</em></dt>
<dd>This specifies the address of the application, in the form
<em>fcgi://hostname:port/</em>. The application process(es)
must be managed independently, such as with
<code class="program"><a href="../programs/fcgistarter.html">fcgistarter</a></code>.</dd>
</dl>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="invocations" id="invocations">Invocation modes</a></h2>
@@ -406,127 +527,6 @@ Require FooAuthnz</pre>
<pre class="prettyprint lang-config">LogLevel info authnz_fcgi:trace8</pre>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AuthnzFcgiCheckAuthnProvider" id="AuthnzFcgiCheckAuthnProvider">AuthnzFcgiCheckAuthnProvider</a> <a name="authnzfcgicheckauthnprovider" id="authnzfcgicheckauthnprovider">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enables a FastCGI application to handle the check_authn
authentication hook.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthnzFcgiCheckAuthnProvider <em>provider-name</em>|<code>None</code>
<em>option</em> ...</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>none</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_fcgi</td></tr>
</table>
<p>This directive is used to enable a FastCGI authorizer to
handle a specific processing phase of authentication or
authorization.</p>
<p>Some capabilities of FastCGI authorizers require enablement
using this directive instead of
<code class="directive">AuthBasicProvider</code>:</p>
<ul>
<li>Non-Basic authentication; generally, determining the user
id of the client and returning it from the authorizer; see the
<code>UserExpr</code> option below</li>
<li>Selecting a custom response code; for a non-200 response
from the authorizer, the code from the authorizer will be the
status of the response</li>
<li>Setting the body of a non-200 response; if the authorizer
provides a response body with a non-200 response, that body
will be returned to the client; up to 8192 bytes of text are
supported</li>
</ul>
<dl>
<dt><em>provider-name</em></dt>
<dd>This is the name of a provider defined with <code class="directive">
AuthnzFcgiDefineProvider</code>.</dd>
<dt><code>None</code></dt>
<dd>Specify <code>None</code> to disable a provider enabled
with this directive in an outer scope, such as in a parent
directory.</dd>
<dt><em>option</em></dt>
<dd>The following options are supported:
<dl>
<dt>Authoritative On|Off (default On)</dt>
<dd>This controls whether or not other modules are allowed
to run when this module has a FastCGI authorizer configured
and it fails the request.</dd>
<dt>DefaultUser <em>userid</em></dt>
<dd>When the authorizer returns success and <code>UserExpr</code>
is configured and evaluates to an empty string (e.g., authorizer
didn't return a variable), this value will be used as the user
id. This is typically used when the authorizer has a concept of
guest, or unauthenticated, users and guest users are mapped to
some specific user id for logging and other purposes.</dd>
<dt>RequireBasicAuth On|Off (default Off)</dt>
<dd>This controls whether or not Basic auth is required
before passing the request to the authorizer. If required,
the authorizer won't be invoked without a user id and
password; 401 will be returned for a request without that.</dd>
<dt>UserExpr <em>expr</em> (no default)</dt>
<dd>When Basic authentication isn't provided by the client
and the authorizer determines the user, this expression,
evaluated after calling the authorizer, determines the
user. The expression follows <a href="../expr.html">
ap_expr syntax</a> and must resolve to a string. A typical
use is to reference a <code>Variable-<em>XXX</em></code>
setting returned by the authorizer using an option like
<code>UserExpr "%{reqenv:<em>XXX</em>}"</code>. If
this option is specified and the user id can't be retrieved
using the expression after a successful authentication, the
request will be rejected with a 500 error.</dd>
</dl>
</dd>
</dl>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AuthnzFcgiDefineProvider" id="AuthnzFcgiDefineProvider">AuthnzFcgiDefineProvider</a> <a name="authnzfcgidefineprovider" id="authnzfcgidefineprovider">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Defines a FastCGI application as a provider for
authentication and/or authorization</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthnzFcgiDefineProvider <em>type</em> <em>provider-name</em>
<em>backend-address</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>none</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_fcgi</td></tr>
</table>
<p>This directive is used to define a FastCGI application as
a provider for a particular phase of authentication or
authorization.</p>
<dl>
<dt><em>type</em></dt>
<dd>This must be set to <em>authn</em> for authentication,
<em>authz</em> for authorization, or <em>authnz</em> for
a generic FastCGI authorizer which performs both checks.</dd>
<dt><em>provider-name</em></dt>
<dd>This is used to assign a name to the provider which is
used in other directives such as
<code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>
and
<code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>.</dd>
<dt><em>backend-address</em></dt>
<dd>This specifies the address of the application, in the form
<em>fcgi://hostname:port/</em>. The application process(es)
must be managed independently, such as with
<code class="program"><a href="../programs/fcgistarter.html">fcgistarter</a></code>.</dd>
</dl>
</div>
</div>
<div class="bottomlang">

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -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">&lt;RequireAll&gt;</a></code>,
<code class="directive"><a href="#requireany">&lt;RequireAny&gt;</a></code>
and
<code class="directive"><a href="#requirenone">&lt;RequireNone&gt;</a></code>
may be combined with each other and with the
<code class="directive"><a href="#require">Require</a></code>
directive to express complex authorization logic.</p>
<p>The example below expresses the following authorization logic.
In order to access the resource, the user must either be the
<code>superadmin</code> user, or belong to both the
<code>admins</code> group and the <code>Administrators</code> LDAP
group and either belong to the <code>sales</code> group or
have the LDAP <code>dept</code> attribute <code>sales</code>.
Furthermore, in order to access the resource, the user must
not belong to either the <code>temps</code> group or the
LDAP group <code>Temporary Employees</code>.</p>
<pre class="prettyprint lang-config">&lt;Directory "/www/mydocs"&gt;
&lt;RequireAll&gt;
&lt;RequireAny&gt;
Require user superadmin
&lt;RequireAll&gt;
Require group admins
Require ldap-group "cn=Administrators,o=Airius"
&lt;RequireAny&gt;
Require group sales
Require ldap-attribute dept="sales"
&lt;/RequireAny&gt;
&lt;/RequireAll&gt;
&lt;/RequireAny&gt;
&lt;RequireNone&gt;
Require group temps
Require ldap-group "cn=Temporary Employees,o=Airius"
&lt;/RequireNone&gt;
&lt;/RequireAll&gt;
&lt;/Directory&gt;</pre>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="requiredirectives" id="requiredirectives">The Require Directives</a></h2>
<p><code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code> provides some generic authorization
providers which can be used with the
<code class="directive"><a href="#require">Require</a></code> directive.</p>
<h3><a name="reqenv" id="reqenv">Require env</a></h3>
<p>The <code>env</code> provider allows access to the server
to be controlled based on the existence of an <a href="../env.html">environment variable</a>. When <code>Require
env <var>env-variable</var></code> is specified, then the request is
allowed access if the environment variable <var>env-variable</var>
exists. The server provides the ability to set environment
variables in a flexible way based on characteristics of the client
request using the directives provided by
<code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code>. Therefore, this directive can be
used to allow access based on such factors as the clients
<code>User-Agent</code> (browser type), <code>Referer</code>, or
other HTTP request header fields.</p>
<pre class="prettyprint lang-config">SetEnvIf User-Agent "^KnockKnock/2\.0" let_me_in
&lt;Directory "/docroot"&gt;
Require env let_me_in
&lt;/Directory&gt;</pre>
<p>In this case, browsers with a user-agent string beginning
with <code>KnockKnock/2.0</code> will be allowed access, and all
others will be denied.</p>
<p>When the server looks up a path via an internal
<a class="glossarylink" href="../glossary.html#subrequest" title="see glossary">subrequest</a> such as looking
for a <code class="directive"><a href="../mod/mod_dir.html#directoryindex">DirectoryIndex</a></code>
or generating a directory listing with <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code>,
per-request environment variables are <em>not</em> inherited in the
subrequest. Additionally,
<code class="directive"><a href="../mod/mod_setenvif.html#setenvif">SetEnvIf</a></code> directives
are not separately evaluated in the subrequest due to the API phases
<code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> takes action in.</p>
<h3><a name="reqall" id="reqall">Require all</a></h3>
<p>The <code>all</code> provider mimics the functionality that
was previously provided by the 'Allow from all' and 'Deny from all'
directives. This provider can take one of two arguments which are
'granted' or 'denied'. The following examples will grant or deny
access to all requests.</p>
<pre class="prettyprint lang-config">Require all granted</pre>
<pre class="prettyprint lang-config">Require all denied</pre>
<h3><a name="reqmethod" id="reqmethod">Require method</a></h3>
<p>The <code>method</code> provider allows using the HTTP method in
authorization decisions. The GET and HEAD methods are treated as
equivalent. The TRACE method is not available to this provider,
use <code class="directive"><a href="../mod/core.html#traceenable">TraceEnable</a></code> instead.</p>
<p>The following example will only allow GET, HEAD, POST, and OPTIONS
requests:</p>
<pre class="prettyprint lang-config">Require method GET POST OPTIONS</pre>
<p>The following example will allow GET, HEAD, POST, and OPTIONS
requests without authentication, and require a valid user for all other
methods:</p>
<pre class="prettyprint lang-config">&lt;RequireAny&gt;
<20>Require method GET POST OPTIONS
<20>Require valid-user
&lt;/RequireAny&gt;</pre>
<h3><a name="reqexpr" id="reqexpr">Require expr</a></h3>
<p>The <code>expr</code> provider allows basing authorization
decisions on arbitrary expressions.</p>
<pre class="prettyprint lang-config">Require expr %{TIME_HOUR} -ge 9 &amp;&amp; %{TIME_HOUR} -le 17</pre>
<pre class="prettyprint lang-config">&lt;RequireAll&gt;
Require expr "!(%{QUERY_STRING} =~ /secret/)"
Require expr "%{REQUEST_URI} in { '/example.cgi', '/other.cgi' }"
&lt;/RequireAll&gt;</pre>
<pre class="prettyprint lang-config">Require expr "!(%{QUERY_STRING} =~ /secret/) &amp;&amp; %{REQUEST_URI} in { '/example.cgi', '/other.cgi' }"</pre>
<p>The syntax is described in the <a href="../expr.html">ap_expr</a>
documentation.</p>
<p>Normally, the expression is evaluated before authentication. However, if
the expression returns false and references the variable
<code>%{REMOTE_USER}</code>, authentication will be performed and
the expression will be re-evaluated.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="authzalias" id="authzalias">Creating Authorization Provider Aliases</a></h2>
<p>Extended authorization providers can be created within the configuration
file and assigned an alias name. The alias providers can then be referenced
through the <code class="directive"><a href="#require">Require</a></code> directive
in the same way as a base authorization provider. Besides the ability to
create and alias an extended provider, it also allows the same extended
authorization provider to be referenced by multiple locations.
</p>
<h3><a name="example" id="example">Example</a></h3>
<p>The example below creates two different ldap authorization provider
aliases based on the ldap-group authorization provider. This example
allows a single authorization location to check group membership within
multiple ldap hosts:
</p>
<pre class="prettyprint lang-config">&lt;AuthzProviderAlias ldap-group ldap-group-alias1 "cn=my-group,o=ctx"&gt;
AuthLDAPBindDN "cn=youruser,o=ctx"
AuthLDAPBindPassword yourpassword
AuthLDAPURL "ldap://ldap.host/o=ctx"
&lt;/AuthzProviderAlias&gt;
&lt;AuthzProviderAlias ldap-group ldap-group-alias2 "cn=my-other-group,o=dev"&gt;
AuthLDAPBindDN "cn=yourotheruser,o=dev"
AuthLDAPBindPassword yourotherpassword
AuthLDAPURL "ldap://other.ldap.host/o=dev?cn"
&lt;/AuthzProviderAlias&gt;
Alias "/secure" "/webpages/secure"
&lt;Directory "/webpages/secure"&gt;
Require all granted
AuthBasicProvider file
AuthType Basic
AuthName LDAP_Protected_Place
#implied OR operation
Require ldap-group-alias1
Require ldap-group-alias2
&lt;/Directory&gt;</pre>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AuthMerging" id="AuthMerging">AuthMerging</a> <a name="authmerging" id="authmerging">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Controls the manner in which each configuration section's
@@ -631,6 +427,210 @@ must succeed for the enclosing directive to not fail.</td></tr>
<li><a href="../howto/auth.html">Authentication, Authorization,
and Access Control</a></li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="logic" id="logic">Authorization Containers</a></h2>
<p>The authorization container directives
<code class="directive"><a href="#requireall">&lt;RequireAll&gt;</a></code>,
<code class="directive"><a href="#requireany">&lt;RequireAny&gt;</a></code>
and
<code class="directive"><a href="#requirenone">&lt;RequireNone&gt;</a></code>
may be combined with each other and with the
<code class="directive"><a href="#require">Require</a></code>
directive to express complex authorization logic.</p>
<p>The example below expresses the following authorization logic.
In order to access the resource, the user must either be the
<code>superadmin</code> user, or belong to both the
<code>admins</code> group and the <code>Administrators</code> LDAP
group and either belong to the <code>sales</code> group or
have the LDAP <code>dept</code> attribute <code>sales</code>.
Furthermore, in order to access the resource, the user must
not belong to either the <code>temps</code> group or the
LDAP group <code>Temporary Employees</code>.</p>
<pre class="prettyprint lang-config">&lt;Directory "/www/mydocs"&gt;
&lt;RequireAll&gt;
&lt;RequireAny&gt;
Require user superadmin
&lt;RequireAll&gt;
Require group admins
Require ldap-group "cn=Administrators,o=Airius"
&lt;RequireAny&gt;
Require group sales
Require ldap-attribute dept="sales"
&lt;/RequireAny&gt;
&lt;/RequireAll&gt;
&lt;/RequireAny&gt;
&lt;RequireNone&gt;
Require group temps
Require ldap-group "cn=Temporary Employees,o=Airius"
&lt;/RequireNone&gt;
&lt;/RequireAll&gt;
&lt;/Directory&gt;</pre>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="requiredirectives" id="requiredirectives">The Require Directives</a></h2>
<p><code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code> provides some generic authorization
providers which can be used with the
<code class="directive"><a href="#require">Require</a></code> directive.</p>
<h3><a name="reqenv" id="reqenv">Require env</a></h3>
<p>The <code>env</code> provider allows access to the server
to be controlled based on the existence of an <a href="../env.html">environment variable</a>. When <code>Require
env <var>env-variable</var></code> is specified, then the request is
allowed access if the environment variable <var>env-variable</var>
exists. The server provides the ability to set environment
variables in a flexible way based on characteristics of the client
request using the directives provided by
<code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code>. Therefore, this directive can be
used to allow access based on such factors as the clients
<code>User-Agent</code> (browser type), <code>Referer</code>, or
other HTTP request header fields.</p>
<pre class="prettyprint lang-config">SetEnvIf User-Agent "^KnockKnock/2\.0" let_me_in
&lt;Directory "/docroot"&gt;
Require env let_me_in
&lt;/Directory&gt;</pre>
<p>In this case, browsers with a user-agent string beginning
with <code>KnockKnock/2.0</code> will be allowed access, and all
others will be denied.</p>
<p>When the server looks up a path via an internal
<a class="glossarylink" href="../glossary.html#subrequest" title="see glossary">subrequest</a> such as looking
for a <code class="directive"><a href="../mod/mod_dir.html#directoryindex">DirectoryIndex</a></code>
or generating a directory listing with <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code>,
per-request environment variables are <em>not</em> inherited in the
subrequest. Additionally,
<code class="directive"><a href="../mod/mod_setenvif.html#setenvif">SetEnvIf</a></code> directives
are not separately evaluated in the subrequest due to the API phases
<code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> takes action in.</p>
<h3><a name="reqall" id="reqall">Require all</a></h3>
<p>The <code>all</code> provider mimics the functionality that
was previously provided by the 'Allow from all' and 'Deny from all'
directives. This provider can take one of two arguments which are
'granted' or 'denied'. The following examples will grant or deny
access to all requests.</p>
<pre class="prettyprint lang-config">Require all granted</pre>
<pre class="prettyprint lang-config">Require all denied</pre>
<h3><a name="reqmethod" id="reqmethod">Require method</a></h3>
<p>The <code>method</code> provider allows using the HTTP method in
authorization decisions. The GET and HEAD methods are treated as
equivalent. The TRACE method is not available to this provider,
use <code class="directive"><a href="../mod/core.html#traceenable">TraceEnable</a></code> instead.</p>
<p>The following example will only allow GET, HEAD, POST, and OPTIONS
requests:</p>
<pre class="prettyprint lang-config">Require method GET POST OPTIONS</pre>
<p>The following example will allow GET, HEAD, POST, and OPTIONS
requests without authentication, and require a valid user for all other
methods:</p>
<pre class="prettyprint lang-config">&lt;RequireAny&gt;
<20>Require method GET POST OPTIONS
<20>Require valid-user
&lt;/RequireAny&gt;</pre>
<h3><a name="reqexpr" id="reqexpr">Require expr</a></h3>
<p>The <code>expr</code> provider allows basing authorization
decisions on arbitrary expressions.</p>
<pre class="prettyprint lang-config">Require expr %{TIME_HOUR} -ge 9 &amp;&amp; %{TIME_HOUR} -le 17</pre>
<pre class="prettyprint lang-config">&lt;RequireAll&gt;
Require expr "!(%{QUERY_STRING} =~ /secret/)"
Require expr "%{REQUEST_URI} in { '/example.cgi', '/other.cgi' }"
&lt;/RequireAll&gt;</pre>
<pre class="prettyprint lang-config">Require expr "!(%{QUERY_STRING} =~ /secret/) &amp;&amp; %{REQUEST_URI} in { '/example.cgi', '/other.cgi' }"</pre>
<p>The syntax is described in the <a href="../expr.html">ap_expr</a>
documentation.</p>
<p>Normally, the expression is evaluated before authentication. However, if
the expression returns false and references the variable
<code>%{REMOTE_USER}</code>, authentication will be performed and
the expression will be re-evaluated.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="authzalias" id="authzalias">Creating Authorization Provider Aliases</a></h2>
<p>Extended authorization providers can be created within the configuration
file and assigned an alias name. The alias providers can then be referenced
through the <code class="directive"><a href="#require">Require</a></code> directive
in the same way as a base authorization provider. Besides the ability to
create and alias an extended provider, it also allows the same extended
authorization provider to be referenced by multiple locations.
</p>
<h3><a name="example" id="example">Example</a></h3>
<p>The example below creates two different ldap authorization provider
aliases based on the ldap-group authorization provider. This example
allows a single authorization location to check group membership within
multiple ldap hosts:
</p>
<pre class="prettyprint lang-config">&lt;AuthzProviderAlias ldap-group ldap-group-alias1 "cn=my-group,o=ctx"&gt;
AuthLDAPBindDN "cn=youruser,o=ctx"
AuthLDAPBindPassword yourpassword
AuthLDAPURL "ldap://ldap.host/o=ctx"
&lt;/AuthzProviderAlias&gt;
&lt;AuthzProviderAlias ldap-group ldap-group-alias2 "cn=my-other-group,o=dev"&gt;
AuthLDAPBindDN "cn=yourotheruser,o=dev"
AuthLDAPBindPassword yourotherpassword
AuthLDAPURL "ldap://other.ldap.host/o=dev?cn"
&lt;/AuthzProviderAlias&gt;
Alias "/secure" "/webpages/secure"
&lt;Directory "/webpages/secure"&gt;
Require all granted
AuthBasicProvider file
AuthType Basic
AuthName LDAP_Protected_Place
#implied OR operation
Require ldap-group-alias1
Require ldap-group-alias2
&lt;/Directory&gt;</pre>
</div>
</div>
<div class="bottomlang">

View File

@@ -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">&lt;RequireAll&gt;</a></code>,
<code class="directive"><a href="#requireany">&lt;RequireAny&gt;</a></code> et <code class="directive"><a href="#requirenone">&lt;RequireNone&gt;</a></code>
peuvent <20>tre combin<69>es entre elles et avec la directive <code class="directive"><a href="#require">Require</a></code> pour construire une
logique d'autorisation complexe.</p>
<p>L'exemple ci-dessous illustre la logique d'autorisation suivante.
Pour pouvoir acc<63>der <20> la ressource, l'utilisateur doit <20>tre
l'utilisateur <code>superadmin</code>, ou appartenir aux deux
groupes LDAP <code>admins</code> et <code>Administrateurs</code> et
soit appartenir au groupe <code>ventes</code>, soit avoir
<code>ventes</code> comme valeur de l'attribut LDAP
<code>dept</code>. De plus, pour pouvoir acc<63>der <20> la ressource,
l'utilisateur ne doit appartenir ni au groupe <code>temps</code>, ni
au groupe LDAP <code>Employ<6F>s temporaires</code>.</p>
<pre class="prettyprint lang-config">&lt;Directory /www/mydocs&gt;
&lt;RequireAll&gt;
&lt;RequireAny&gt;
Require user superadmin
&lt;RequireAll&gt;
Require group admins
Require ldap-group cn=Administrateurs,o=Airius
&lt;RequireAny&gt;
Require group ventes
Require ldap-attribute dept="ventes"
&lt;/RequireAny&gt;
&lt;/RequireAll&gt;
&lt;/RequireAny&gt;
&lt;RequireNone&gt;
Require group temps
Require ldap-group cn=Employ<6F>s temporaires,o=Airius
&lt;/RequireNone&gt;
&lt;/RequireAll&gt;
&lt;/Directory&gt;</pre>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="requiredirectives" id="requiredirectives">Les directives Require</a></h2>
<p>Le module <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code> met <20> disposition des
fournisseurs d'autorisation g<>n<EFBFBD>riques utilisables avec la directive
<code class="directive"><a href="#require">Require</a></code>.</p>
<h3><a name="reqenv" id="reqenv">Require env</a></h3>
<p>Le fournisseur <code>env</code> permet de contr<74>ler l'acc<63>s au
serveur en fonction de l'existence d'une <a href="../env.html">variable d'environnement</a>. Lorsque <code>Require
env <var>env-variable</var></code> est sp<73>cifi<66>, la requ<71>te se voit
autoriser l'acc<63>s si la variable d'environnement
<var>env-variable</var> existe. Le serveur permet de d<>finir
facilement des variables d'environnement en fonction des
caract<63>ristiques de la requ<71>te du client via les directives fournies
par le module <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code>. Cette directive Require
env permet donc de contr<74>ler l'acc<63>s en fonction des
valeurs des en-t<>tes de la requ<71>te HTTP tels que
<code>User-Agent</code> (type de navigateur), <code>Referer</code>,
entre autres.</p>
<pre class="prettyprint lang-config">SetEnvIf User-Agent ^KnockKnock/2\.0 let_me_in
&lt;Directory /docroot&gt;
Require env let_me_in
&lt;/Directory&gt;</pre>
<p>Avec cet exemple, les navigateurs dont la cha<68>ne user-agent
commence par <code>KnockKnock/2.0</code> se verront autoriser
l'acc<63>s, alors que tous les autres seront rejet<65>s.</p>
<p>Lorsque le serveur cherche un chemin via une <a class="glossarylink" href="../glossary.html#subrequest" title="voir glossaire">sous-requ<71>te</a> interne (par exemple la
recherche d'un <code class="directive"><a href="../mod/mod_dir.html#directoryindex">DirectoryIndex</a></code>), ou lorsqu'il g<>n<EFBFBD>re un
listing du contenu d'un r<>pertoire via le module
<code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code>, la sous-requ<71>te n'h<>rite pas des
variables d'environnement sp<73>cifiques <20> la requ<71>te. En outre, <20> 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 <20>valu<6C>es
s<>par<61>ment dans la sous-requ<71>te.</p>
<h3><a name="reqall" id="reqall">Require all</a></h3>
<p>Le fournisseur <code>all</code> reproduit la fonctionnalit<69>
pr<70>c<EFBFBD>demment fournie par les directives 'Allow from all' et 'Deny
from all'. Il accepte un argument dont les deux valeurs possibles
sont : 'granted' ou 'denied'. Les exemples suivants autorisent ou
interdisent l'acc<63>s <20> toutes les requ<71>tes.</p>
<pre class="prettyprint lang-config">Require all granted</pre>
<pre class="prettyprint lang-config">Require all denied</pre>
<h3><a name="reqmethod" id="reqmethod">Require method</a></h3>
<p>Le fournisseur <code>method</code> permet d'utiliser la m<>thode
HTTP dans le processus d'autorisation. Les m<>thodes GET et HEAD sont
ici consid<69>r<EFBFBD>es comme <20>quivalentes. La m<>thode TRACE n'est pas
support<72>e par ce fournisseur ; utilisez <20> la place la directive
<code class="directive"><a href="../mod/core.html#traceenable">TraceEnable</a></code>.</p>
<p>Dans l'exemple suivant, seules les m<>thodes GET, HEAD, POST, et
OPTIONS sont autoris<69>es :</p>
<pre class="prettyprint lang-config">Require method GET POST OPTIONS</pre>
<p>Dans l'exemple suivant, les m<>thodes GET, HEAD, POST, et OPTIONS
sont autoris<69>es sans authentification, alors que toutes les autres
m<>thodes n<>cessitent un utilisateur valide :</p>
<pre class="prettyprint lang-config">&lt;RequireAny&gt;
<20>Require method GET POST OPTIONS
<20>Require valid-user
&lt;/RequireAny&gt;</pre>
<h3><a name="reqexpr" id="reqexpr">Require expr</a></h3>
<p>Le fournisseur <code>expr</code> permet d'accorder l'autorisation
d'acc<63>s en fonction d'expressions arbitraires.</p>
<pre class="prettyprint lang-config">Require expr %{TIME_HOUR} -ge 9 &amp;&amp; %{TIME_HOUR} -le 17</pre>
<pre class="prettyprint lang-config">&lt;RequireAll&gt;
Require expr "!(%{QUERY_STRING} =~ /secret/)"
Require expr "%{REQUEST_URI} in { '/example.cgi', '/other.cgi' }"
&lt;/RequireAll&gt;</pre>
<pre class="prettyprint lang-config">Require expr "!(%{QUERY_STRING} =~ /secret/) &amp;&amp; %{REQUEST_URI} in { '/example.cgi', '/other.cgi' }"</pre>
<p>La syntaxe de l'expression est d<>crite dans la documentation de <a href="../expr.html">ap_expr</a>.</p>
<p>Normalement, l'expression est <20>valu<6C>e avant l'authentification.
Cependant, si l'expression renvoie false et se r<>f<EFBFBD>re <20> la variable
<code>%{REMOTE_USER}</code>, le processus d'authentification sera
engag<61> et l'expression r<><72>valu<6C>e.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="authzalias" id="authzalias">Cr<43>ation des alias du fournisseur
d'autorisation</a></h2>
<p>Il est possible de cr<63>er des fournisseurs d'autorisation <20>tendus
dans le fichier de configuration et de leur assigner un nom d'alias.
On peut ensuite utiliser ces fournisseurs alias<61>s dans une
directive <code class="directive"><a href="#require">Require</a></code> de
la m<>me mani<6E>re qu'on le ferait pour des fournisseurs d'autorisation
de base. En plus de la possibilit<69> de cr<63>er et d'aliaser un
fournisseur <20>tendu, le m<>me fournisseur d'autorisation <20>tendu peut
<20>tre r<>f<EFBFBD>renc<6E> par diverses localisations.
</p>
<h3><a name="example" id="example">Exemple</a></h3>
<p>Dans l'exemple suivant, on cr<63>e deux alias de fournisseur
d'autorisation ldap diff<66>rents bas<61>s sur le fournisseur
d'autorisation ldap-group. Il est ainsi possible pour un seul
r<>pertoire de v<>rifier l'appartenance <20> un groupe dans plusieurs
serveurs ldap :
</p>
<pre class="prettyprint lang-config">&lt;AuthzProviderAlias ldap-group ldap-group-alias1 cn=my-group,o=ctx&gt;
AuthLDAPBindDN cn=youruser,o=ctx
AuthLDAPBindPassword yourpassword
AuthLDAPURL ldap://ldap.host/o=ctx
&lt;/AuthzProviderAlias&gt;
&lt;AuthzProviderAlias ldap-group ldap-group-alias2 cn=my-other-group,o=dev&gt;
AuthLDAPBindDN cn=yourotheruser,o=dev
AuthLDAPBindPassword yourotherpassword
AuthLDAPURL ldap://other.ldap.host/o=dev?cn
&lt;/AuthzProviderAlias&gt;
Alias /secure /webpages/secure
&lt;Directory /webpages/secure&gt;
Require all granted
AuthBasicProvider file
AuthType Basic
AuthName LDAP_Protected_Place
#Op<4F>ration logique implicite : OU inclusif
Require ldap-group-alias1
Require ldap-group-alias2
&lt;/Directory&gt;</pre>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="authmerging" id="authmerging">Directive</a> <a name="AuthMerging" id="AuthMerging">AuthMerging</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D<>finit la mani<6E>re dont chaque logique d'autorisation des
@@ -640,6 +438,208 @@ pas.</td></tr>
<li><a href="../howto/auth.html">Authentification, autorisation et
contr<EFBFBD>le d'acc<63>s</a></li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="logic" id="logic">Conteneurs d'autorisation</a></h2>
<p>Les directives de conteneur d'autorisation <code class="directive"><a href="#requireall">&lt;RequireAll&gt;</a></code>,
<code class="directive"><a href="#requireany">&lt;RequireAny&gt;</a></code> et <code class="directive"><a href="#requirenone">&lt;RequireNone&gt;</a></code>
peuvent <20>tre combin<69>es entre elles et avec la directive <code class="directive"><a href="#require">Require</a></code> pour construire une
logique d'autorisation complexe.</p>
<p>L'exemple ci-dessous illustre la logique d'autorisation suivante.
Pour pouvoir acc<63>der <20> la ressource, l'utilisateur doit <20>tre
l'utilisateur <code>superadmin</code>, ou appartenir aux deux
groupes LDAP <code>admins</code> et <code>Administrateurs</code> et
soit appartenir au groupe <code>ventes</code>, soit avoir
<code>ventes</code> comme valeur de l'attribut LDAP
<code>dept</code>. De plus, pour pouvoir acc<63>der <20> la ressource,
l'utilisateur ne doit appartenir ni au groupe <code>temps</code>, ni
au groupe LDAP <code>Employ<6F>s temporaires</code>.</p>
<pre class="prettyprint lang-config">&lt;Directory /www/mydocs&gt;
&lt;RequireAll&gt;
&lt;RequireAny&gt;
Require user superadmin
&lt;RequireAll&gt;
Require group admins
Require ldap-group cn=Administrateurs,o=Airius
&lt;RequireAny&gt;
Require group ventes
Require ldap-attribute dept="ventes"
&lt;/RequireAny&gt;
&lt;/RequireAll&gt;
&lt;/RequireAny&gt;
&lt;RequireNone&gt;
Require group temps
Require ldap-group cn=Employ<6F>s temporaires,o=Airius
&lt;/RequireNone&gt;
&lt;/RequireAll&gt;
&lt;/Directory&gt;</pre>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="requiredirectives" id="requiredirectives">Les directives Require</a></h2>
<p>Le module <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code> met <20> disposition des
fournisseurs d'autorisation g<>n<EFBFBD>riques utilisables avec la directive
<code class="directive"><a href="#require">Require</a></code>.</p>
<h3><a name="reqenv" id="reqenv">Require env</a></h3>
<p>Le fournisseur <code>env</code> permet de contr<74>ler l'acc<63>s au
serveur en fonction de l'existence d'une <a href="../env.html">variable d'environnement</a>. Lorsque <code>Require
env <var>env-variable</var></code> est sp<73>cifi<66>, la requ<71>te se voit
autoriser l'acc<63>s si la variable d'environnement
<var>env-variable</var> existe. Le serveur permet de d<>finir
facilement des variables d'environnement en fonction des
caract<63>ristiques de la requ<71>te du client via les directives fournies
par le module <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code>. Cette directive Require
env permet donc de contr<74>ler l'acc<63>s en fonction des
valeurs des en-t<>tes de la requ<71>te HTTP tels que
<code>User-Agent</code> (type de navigateur), <code>Referer</code>,
entre autres.</p>
<pre class="prettyprint lang-config">SetEnvIf User-Agent ^KnockKnock/2\.0 let_me_in
&lt;Directory /docroot&gt;
Require env let_me_in
&lt;/Directory&gt;</pre>
<p>Avec cet exemple, les navigateurs dont la cha<68>ne user-agent
commence par <code>KnockKnock/2.0</code> se verront autoriser
l'acc<63>s, alors que tous les autres seront rejet<65>s.</p>
<p>Lorsque le serveur cherche un chemin via une <a class="glossarylink" href="../glossary.html#subrequest" title="voir glossaire">sous-requ<71>te</a> interne (par exemple la
recherche d'un <code class="directive"><a href="../mod/mod_dir.html#directoryindex">DirectoryIndex</a></code>), ou lorsqu'il g<>n<EFBFBD>re un
listing du contenu d'un r<>pertoire via le module
<code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code>, la sous-requ<71>te n'h<>rite pas des
variables d'environnement sp<73>cifiques <20> la requ<71>te. En outre, <20> 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 <20>valu<6C>es
s<>par<61>ment dans la sous-requ<71>te.</p>
<h3><a name="reqall" id="reqall">Require all</a></h3>
<p>Le fournisseur <code>all</code> reproduit la fonctionnalit<69>
pr<70>c<EFBFBD>demment fournie par les directives 'Allow from all' et 'Deny
from all'. Il accepte un argument dont les deux valeurs possibles
sont : 'granted' ou 'denied'. Les exemples suivants autorisent ou
interdisent l'acc<63>s <20> toutes les requ<71>tes.</p>
<pre class="prettyprint lang-config">Require all granted</pre>
<pre class="prettyprint lang-config">Require all denied</pre>
<h3><a name="reqmethod" id="reqmethod">Require method</a></h3>
<p>Le fournisseur <code>method</code> permet d'utiliser la m<>thode
HTTP dans le processus d'autorisation. Les m<>thodes GET et HEAD sont
ici consid<69>r<EFBFBD>es comme <20>quivalentes. La m<>thode TRACE n'est pas
support<72>e par ce fournisseur ; utilisez <20> la place la directive
<code class="directive"><a href="../mod/core.html#traceenable">TraceEnable</a></code>.</p>
<p>Dans l'exemple suivant, seules les m<>thodes GET, HEAD, POST, et
OPTIONS sont autoris<69>es :</p>
<pre class="prettyprint lang-config">Require method GET POST OPTIONS</pre>
<p>Dans l'exemple suivant, les m<>thodes GET, HEAD, POST, et OPTIONS
sont autoris<69>es sans authentification, alors que toutes les autres
m<>thodes n<>cessitent un utilisateur valide :</p>
<pre class="prettyprint lang-config">&lt;RequireAny&gt;
<20>Require method GET POST OPTIONS
<20>Require valid-user
&lt;/RequireAny&gt;</pre>
<h3><a name="reqexpr" id="reqexpr">Require expr</a></h3>
<p>Le fournisseur <code>expr</code> permet d'accorder l'autorisation
d'acc<63>s en fonction d'expressions arbitraires.</p>
<pre class="prettyprint lang-config">Require expr %{TIME_HOUR} -ge 9 &amp;&amp; %{TIME_HOUR} -le 17</pre>
<pre class="prettyprint lang-config">&lt;RequireAll&gt;
Require expr "!(%{QUERY_STRING} =~ /secret/)"
Require expr "%{REQUEST_URI} in { '/example.cgi', '/other.cgi' }"
&lt;/RequireAll&gt;</pre>
<pre class="prettyprint lang-config">Require expr "!(%{QUERY_STRING} =~ /secret/) &amp;&amp; %{REQUEST_URI} in { '/example.cgi', '/other.cgi' }"</pre>
<p>La syntaxe de l'expression est d<>crite dans la documentation de <a href="../expr.html">ap_expr</a>.</p>
<p>Normalement, l'expression est <20>valu<6C>e avant l'authentification.
Cependant, si l'expression renvoie false et se r<>f<EFBFBD>re <20> la variable
<code>%{REMOTE_USER}</code>, le processus d'authentification sera
engag<61> et l'expression r<><72>valu<6C>e.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="authzalias" id="authzalias">Cr<43>ation des alias du fournisseur
d'autorisation</a></h2>
<p>Il est possible de cr<63>er des fournisseurs d'autorisation <20>tendus
dans le fichier de configuration et de leur assigner un nom d'alias.
On peut ensuite utiliser ces fournisseurs alias<61>s dans une
directive <code class="directive"><a href="#require">Require</a></code> de
la m<>me mani<6E>re qu'on le ferait pour des fournisseurs d'autorisation
de base. En plus de la possibilit<69> de cr<63>er et d'aliaser un
fournisseur <20>tendu, le m<>me fournisseur d'autorisation <20>tendu peut
<20>tre r<>f<EFBFBD>renc<6E> par diverses localisations.
</p>
<h3><a name="example" id="example">Exemple</a></h3>
<p>Dans l'exemple suivant, on cr<63>e deux alias de fournisseur
d'autorisation ldap diff<66>rents bas<61>s sur le fournisseur
d'autorisation ldap-group. Il est ainsi possible pour un seul
r<>pertoire de v<>rifier l'appartenance <20> un groupe dans plusieurs
serveurs ldap :
</p>
<pre class="prettyprint lang-config">&lt;AuthzProviderAlias ldap-group ldap-group-alias1 cn=my-group,o=ctx&gt;
AuthLDAPBindDN cn=youruser,o=ctx
AuthLDAPBindPassword yourpassword
AuthLDAPURL ldap://ldap.host/o=ctx
&lt;/AuthzProviderAlias&gt;
&lt;AuthzProviderAlias ldap-group ldap-group-alias2 cn=my-other-group,o=dev&gt;
AuthLDAPBindDN cn=yourotheruser,o=dev
AuthLDAPBindPassword yourotherpassword
AuthLDAPURL ldap://other.ldap.host/o=dev?cn
&lt;/AuthzProviderAlias&gt;
Alias /secure /webpages/secure
&lt;Directory /webpages/secure&gt;
Require all granted
AuthBasicProvider file
AuthType Basic
AuthName LDAP_Protected_Place
#Op<4F>ration logique implicite : OU inclusif
Require ldap-group-alias1
Require ldap-group-alias2
&lt;/Directory&gt;</pre>
</div>
</div>
<div class="bottomlang">

View File

@@ -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">&nbsp;en&nbsp;</a> |

View File

@@ -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>D<>finit si le client doit <20>tre redirig<69> vers la page
d'origine en cas de connexion ou de d<>connexion r<>ussie si une en-t<>te
de requ<71>te <code>Referer</code> est pr<70>sente</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthzDBDLoginToReferer On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>AuthzDBDLoginToReferer Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>r<>pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authz_dbd</td></tr>
</table>
<p>Utilis<69>e en conjonction avec <code>Require dbd-login</code> ou
<code>Require dbd-logout</code>, cette directive permet de rediriger
le client vers la page d'origine (l'URL contenue dans l'en-t<>te
de requ<71>te HTTP <code>Referer</code>, s'il est pr<70>sent). En
l'absence d'en-t<>te <code>Referer</code>, la d<>finition
<code>AuthzDBDLoginToReferer On</code> sera ignor<6F>e.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="authzdbdquery" id="authzdbdquery">Directive</a> <a name="AuthzDBDQuery" id="AuthzDBDQuery">AuthzDBDQuery</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D<>finit la requ<71>te SQL pour l'op<6F>ration
requise</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthzDBDQuery <var>requ<71>te</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>r<>pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authz_dbd</td></tr>
</table>
<p>La directive <code class="directive">AuthzDBDQuery</code> permet de
sp<73>cifier une requ<71>te SQL <20> ex<65>cuter. Le but de cette requ<71>te d<>pend
de la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> en cours de
traitement.</p>
<ul>
<li>Avec la directive <code>Require dbd-group</code>, elle sp<73>cifie
une requ<71>te permettant de rechercher les groupes d'appartenance de
l'utilisateur courant. Ceci correspond <20> la fonctionnalit<69> standard
d'autres modules d'autorisation comme
<code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> et
<code class="module"><a href="../mod/mod_authz_dbm.html">mod_authz_dbm</a></code>.
La premi<6D>re colonne de chaque enregistrement renvoy<6F> par la requ<71>te
doit contenir une cha<68>ne de caract<63>res correspondant <20> un nom de
groupe. La requ<71>te peut renvoyer z<>ro, un ou plusieurs
enregistrements.
<pre class="prettyprint lang-config">Require dbd-group
AuthzDBDQuery "SELECT group FROM groups WHERE user = %s"</pre>
</li>
<li>Avec la directive <code>Require dbd-login</code> ou
<code>Require dbd-logout</code>, elle ne refusera jamais l'acc<63>s,
mais au contraire ex<65>cutera une requ<71>te SQL permettant d'enregistrer
la connexion ou la d<>connexion de l'utilisateur. Ce dernier doit
<20>tre d<>j<EFBFBD> authentifi<66> avec <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.
<pre class="prettyprint lang-config">Require dbd-login
AuthzDBDQuery "UPDATE authn SET login = 'true' WHERE user = %s"</pre>
</li>
</ul>
<p>Dans tous les cas, l'identifiant utilisateur sera transmis comme
param<61>tre sous la forme d'une simple cha<68>ne lorsque la requ<71>te SQL
sera ex<65>cut<75>e. Il y sera fait r<>f<EFBFBD>rence dans la requ<71>te en utilisant
le sp<73>cificateur de format <code>%s</code>.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="authzdbdredirectquery" id="authzdbdredirectquery">Directive</a> <a name="AuthzDBDRedirectQuery" id="AuthzDBDRedirectQuery">AuthzDBDRedirectQuery</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D<>finit une requ<71>te pour rechercher une page vers laquelle
rediriger l'utilisateur apr<70>s une connexion r<>ussie</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthzDBDRedirectQuery <var>requ<71>te</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>r<>pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authz_dbd</td></tr>
</table>
<p>Sp<53>cifie une requ<71>te SQL optionnelle <20> utiliser apr<70>s une
connexion (ou une d<>connexion) r<>ussie pour rediriger l'utilisateur
vers une URL, qui peut <20>tre sp<73>cifique <20> l'utilisateur.
L'identifiant utilisateur sera transmis comme param<61>tre sous la
forme d'une simple cha<68>ne lorsque la requ<71>te SQL sera ex<65>cut<75>e. Il y
sera fait r<>f<EFBFBD>rence dans la requ<71>te en utilisant le sp<73>cificateur de
format <code>%s</code>.</p>
<pre class="prettyprint lang-config">AuthzDBDRedirectQuery "SELECT userpage FROM userpages WHERE user = %s"</pre>
<p>La premi<6D>re colonne du premier enregistrement renvoy<6F> par la
requ<71>te doit contenir une cha<68>ne de caract<63>res correspondant <20> une
URL vers laquelle rediriger le client. Les enregistrements suivants
sont ignor<6F>s. Si aucun enregistrement n'est renvoy<6F>, le client ne
sera pas redirig<69>.</p>
<p>Notez que <code class="directive">AuthzDBDLoginToReferer</code> l'emporte
sur cette directive si les deux sont d<>finies.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="requiredirectives" id="requiredirectives">Les directives Require</a></h2>
@@ -223,99 +316,6 @@ DBDExptime 300
<code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> pour plus d'informations <20> propos de la
s<>curit<69> dans ce domaine.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="authzdbdlogintoreferer" id="authzdbdlogintoreferer">Directive</a> <a name="AuthzDBDLoginToReferer" id="AuthzDBDLoginToReferer">AuthzDBDLoginToReferer</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D<>finit si le client doit <20>tre redirig<69> vers la page
d'origine en cas de connexion ou de d<>connexion r<>ussie si une en-t<>te
de requ<71>te <code>Referer</code> est pr<70>sente</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthzDBDLoginToReferer On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>AuthzDBDLoginToReferer Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>r<>pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authz_dbd</td></tr>
</table>
<p>Utilis<69>e en conjonction avec <code>Require dbd-login</code> ou
<code>Require dbd-logout</code>, cette directive permet de rediriger
le client vers la page d'origine (l'URL contenue dans l'en-t<>te
de requ<71>te HTTP <code>Referer</code>, s'il est pr<70>sent). En
l'absence d'en-t<>te <code>Referer</code>, la d<>finition
<code>AuthzDBDLoginToReferer On</code> sera ignor<6F>e.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="authzdbdquery" id="authzdbdquery">Directive</a> <a name="AuthzDBDQuery" id="AuthzDBDQuery">AuthzDBDQuery</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D<>finit la requ<71>te SQL pour l'op<6F>ration
requise</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthzDBDQuery <var>requ<71>te</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>r<>pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authz_dbd</td></tr>
</table>
<p>La directive <code class="directive">AuthzDBDQuery</code> permet de
sp<73>cifier une requ<71>te SQL <20> ex<65>cuter. Le but de cette requ<71>te d<>pend
de la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> en cours de
traitement.</p>
<ul>
<li>Avec la directive <code>Require dbd-group</code>, elle sp<73>cifie
une requ<71>te permettant de rechercher les groupes d'appartenance de
l'utilisateur courant. Ceci correspond <20> la fonctionnalit<69> standard
d'autres modules d'autorisation comme
<code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> et
<code class="module"><a href="../mod/mod_authz_dbm.html">mod_authz_dbm</a></code>.
La premi<6D>re colonne de chaque enregistrement renvoy<6F> par la requ<71>te
doit contenir une cha<68>ne de caract<63>res correspondant <20> un nom de
groupe. La requ<71>te peut renvoyer z<>ro, un ou plusieurs
enregistrements.
<pre class="prettyprint lang-config">Require dbd-group
AuthzDBDQuery "SELECT group FROM groups WHERE user = %s"</pre>
</li>
<li>Avec la directive <code>Require dbd-login</code> ou
<code>Require dbd-logout</code>, elle ne refusera jamais l'acc<63>s,
mais au contraire ex<65>cutera une requ<71>te SQL permettant d'enregistrer
la connexion ou la d<>connexion de l'utilisateur. Ce dernier doit
<20>tre d<>j<EFBFBD> authentifi<66> avec <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.
<pre class="prettyprint lang-config">Require dbd-login
AuthzDBDQuery "UPDATE authn SET login = 'true' WHERE user = %s"</pre>
</li>
</ul>
<p>Dans tous les cas, l'identifiant utilisateur sera transmis comme
param<61>tre sous la forme d'une simple cha<68>ne lorsque la requ<71>te SQL
sera ex<65>cut<75>e. Il y sera fait r<>f<EFBFBD>rence dans la requ<71>te en utilisant
le sp<73>cificateur de format <code>%s</code>.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="authzdbdredirectquery" id="authzdbdredirectquery">Directive</a> <a name="AuthzDBDRedirectQuery" id="AuthzDBDRedirectQuery">AuthzDBDRedirectQuery</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D<>finit une requ<71>te pour rechercher une page vers laquelle
rediriger l'utilisateur apr<70>s une connexion r<>ussie</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthzDBDRedirectQuery <var>requ<71>te</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>r<>pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authz_dbd</td></tr>
</table>
<p>Sp<53>cifie une requ<71>te SQL optionnelle <20> utiliser apr<70>s une
connexion (ou une d<>connexion) r<>ussie pour rediriger l'utilisateur
vers une URL, qui peut <20>tre sp<73>cifique <20> l'utilisateur.
L'identifiant utilisateur sera transmis comme param<61>tre sous la
forme d'une simple cha<68>ne lorsque la requ<71>te SQL sera ex<65>cut<75>e. Il y
sera fait r<>f<EFBFBD>rence dans la requ<71>te en utilisant le sp<73>cificateur de
format <code>%s</code>.</p>
<pre class="prettyprint lang-config">AuthzDBDRedirectQuery "SELECT userpage FROM userpages WHERE user = %s"</pre>
<p>La premi<6D>re colonne du premier enregistrement renvoy<6F> par la
requ<71>te doit contenir une cha<68>ne de caract<63>res correspondant <20> une
URL vers laquelle rediriger le client. Les enregistrements suivants
sont ignor<6F>s. Si aucun enregistrement n'est renvoy<6F>, le client ne
sera pas redirig<69>.</p>
<p>Notez que <code class="directive">AuthzDBDLoginToReferer</code> l'emporte
sur cette directive si les deux sont d<>finies.</p>
</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_authz_dbd.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -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">&lt;Directory "/foo/bar"&gt;
AuthType Basic
AuthName "Secure Area"
AuthBasicProvider dbm
AuthDBMUserFile "site/data/users"
AuthDBMGroupFile "site/data/users"
Require dbm-group admin
&lt;/Directory&gt;</pre>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AuthDBMGroupFile" id="AuthDBMGroupFile">AuthDBMGroupFile</a> <a name="authdbmgroupfile" id="authdbmgroupfile">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets the name of the database file containing the list
@@ -179,6 +130,55 @@ store list of user groups</td></tr>
<p>It is crucial that whatever program you use to create your group
files is configured to use the same type of database.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="requiredirectives" id="requiredirectives">The Require Directives</a></h2>
<p>Apache's <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>
directives are used during the authorization phase to ensure that
a user is allowed to access a resource. mod_authz_dbm extends the
authorization types with <code>dbm-group</code>.</p>
<p>Since v2.4.8, <a href="../expr.html">expressions</a> are supported
within the DBM require directives.</p>
<h3><a name="reqgroup" id="reqgroup">Require dbm-group</a></h3>
<p>This directive specifies group membership that is required for the
user to gain access.</p>
<pre class="prettyprint lang-config">Require dbm-group admin</pre>
<h3><a name="reqfilegroup" id="reqfilegroup">Require dbm-file-group</a></h3>
<p>When this directive is specified, the user must be a member of the group
assigned to the file being accessed.</p>
<pre class="prettyprint lang-config">Require dbm-file-group</pre>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="examples" id="examples">Example usage</a></h2>
<p><em>Note that using mod_authz_dbm requires you to require <code>dbm-group</code>
instead of <code>group</code>:</em>
</p>
<pre class="prettyprint lang-config">&lt;Directory "/foo/bar"&gt;
AuthType Basic
AuthName "Secure Area"
AuthBasicProvider dbm
AuthDBMUserFile "site/data/users"
AuthDBMGroupFile "site/data/users"
Require dbm-group admin
&lt;/Directory&gt;</pre>
</div>
</div>
<div class="bottomlang">

View File

@@ -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<69> <20> acc<63>der <20> une ressource. mod_authz_dbm ajoute
les types d'autorisation <code>dbm-group</code> et <code>dbm-file-group</code>.</p>
<p>A partir de la version 2.4.8, les directives require DBM
supportent les <a href="../expr.html">expressions</a>.</p>
<h3><a name="reqgroup" id="reqgroup">Require dbm-group</a></h3>
<p>Cette directive permet de sp<73>cifier <20> quel groupe un utilisateur
doit appartenir pour obtenir l'autorisation d'acc<63>s.</p>
<pre class="prettyprint lang-config">Require dbm-group admin</pre>
<h3><a name="reqfilegroup" id="reqfilegroup">Require dbm-file-group</a></h3>
<p>Lorsque cette directive est d<>finie, l'utilisateur doit
appartenir au groupe du fichier pour pouvoir y acc<63>der.</p>
<pre class="prettyprint lang-config">Require dbm-file-group</pre>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="examples" id="examples">Exemple d'utilisation</a></h2>
<p><em>Notez que si vous utilisez mod_authz_dbm, le mot-cl<63> pour les
groupes d'authentification qui <20>tait auparavant <code>group</code> est
maintenant <code>dbm-group</code> :</em>
</p>
<pre class="prettyprint lang-config">&lt;Directory "/foo/bar"&gt;
AuthType Basic
AuthName "Secure Area"
AuthBasicProvider dbm
AuthDBMUserFile site/data/users
AuthDBMGroupFile site/data/users
Require dbm-group admin
&lt;/Directory&gt;</pre>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="authdbmgroupfile" id="authdbmgroupfile">Directive</a> <a name="AuthDBMGroupFile" id="AuthDBMGroupFile">AuthDBMGroupFile</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D<>finit le nom du fichier de base de donn<6E>es qui liste
@@ -187,6 +137,56 @@ la liste des groupes d'utilisateurs</td></tr>
fichier de groupes, il est imp<6D>ratif que celui-ci soit configur<75>
pour utiliser le m<>me type de base de donn<6E>es.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="requiredirectives" id="requiredirectives">The Require Directives</a></h2>
<p>Les directives <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> d'Apache permettent,
au cours de la phase d'autorisation, de s'assurer qu'un utilisateur
est bien autoris<69> <20> acc<63>der <20> une ressource. mod_authz_dbm ajoute
les types d'autorisation <code>dbm-group</code> et <code>dbm-file-group</code>.</p>
<p>A partir de la version 2.4.8, les directives require DBM
supportent les <a href="../expr.html">expressions</a>.</p>
<h3><a name="reqgroup" id="reqgroup">Require dbm-group</a></h3>
<p>Cette directive permet de sp<73>cifier <20> quel groupe un utilisateur
doit appartenir pour obtenir l'autorisation d'acc<63>s.</p>
<pre class="prettyprint lang-config">Require dbm-group admin</pre>
<h3><a name="reqfilegroup" id="reqfilegroup">Require dbm-file-group</a></h3>
<p>Lorsque cette directive est d<>finie, l'utilisateur doit
appartenir au groupe du fichier pour pouvoir y acc<63>der.</p>
<pre class="prettyprint lang-config">Require dbm-file-group</pre>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="examples" id="examples">Exemple d'utilisation</a></h2>
<p><em>Notez que si vous utilisez mod_authz_dbm, le mot-cl<63> pour les
groupes d'authentification qui <20>tait auparavant <code>group</code> est
maintenant <code>dbm-group</code> :</em>
</p>
<pre class="prettyprint lang-config">&lt;Directory "/foo/bar"&gt;
AuthType Basic
AuthName "Secure Area"
AuthBasicProvider dbm
AuthDBMUserFile site/data/users
AuthDBMGroupFile site/data/users
Require dbm-group admin
&lt;/Directory&gt;</pre>
</div>
</div>
<div class="bottomlang">

View File

@@ -51,7 +51,6 @@
<li><code class="directive"><a href="../mod/core.html#require">Require</a></code></li>
<li><code class="directive"><a href="../mod/core.html#satisfy">Satisfy</a></code></li>
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AuthDBMGroupFile" id="AuthDBMGroupFile">AuthDBMGroupFile</a> <a name="authdbmgroupfile" id="authdbmgroupfile"><3E><><EFBFBD>þ<EFBFBD></a></h2>
<table class="directive">
@@ -122,6 +121,7 @@
<20><><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD> <20>Ѵ<EFBFBD>.</p>
</div>
</div>
<div class="bottomlang">
<p><span><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: </span><a href="../en/mod/mod_authz_dbm.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -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
@@ -118,6 +84,40 @@ of user groups for authorization</td></tr>
be able to download the <code class="directive">AuthGroupFile</code>.</p>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="requiredirectives" id="requiredirectives">The Require Directives</a></h2>
<p>Apache's <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>
directives are used during the authorization phase to ensure that
a user is allowed to access a resource. mod_authz_groupfile extends the
authorization types with <code>group</code> and <code>group-file</code>.
</p>
<p>Since v2.4.8, <a href="../expr.html">expressions</a> are supported
within the groupfile require directives.</p>
<h3><a name="reqgroup" id="reqgroup">Require group</a></h3>
<p>This directive specifies group membership that is required for the
user to gain access.</p>
<pre class="prettyprint lang-config">Require group admin</pre>
<h3><a name="reqfilegroup" id="reqfilegroup">Require file-group</a></h3>
<p>When this directive is specified, the user must be a member of the group
assigned to the file being accessed.</p>
<pre class="prettyprint lang-config">Require file-group</pre>
</div>
</div>
<div class="bottomlang">

View File

@@ -53,40 +53,6 @@ fonction de leur appartenance
<li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li>
</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="requiredirectives" id="requiredirectives">The Require Directives</a></h2>
<p>Les directives <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> d'Apache permettent,
au cours de la phase d'autorisation, de s'assurer qu'un utilisateur
est bien autoris<69> <20> acc<63>der <20> une ressource. mod_authz_groupfile ajoute
les types d'autorisation <code>group</code> et <code>file-group</code>.
</p>
<p>A partir de la version 2.4.8, les directives require groupfile
supportent les <a href="../expr.html">expressions</a>.</p>
<h3><a name="reqgroup" id="reqgroup">Require group</a></h3>
<p>Cette directive permet de sp<73>cifier <20> quel groupe un utilisateur
doit appartenir pour obtenir l'autorisation d'acc<63>s.</p>
<pre class="prettyprint lang-config">Require group admin</pre>
<h3><a name="reqfilegroup" id="reqfilegroup">Require file-group</a></h3>
<p>Lorsque cette directive est d<>finie, l'utilisateur doit
appartenir au groupe du fichier pour pouvoir y acc<63>der.</p>
<pre class="prettyprint lang-config">Require file-group</pre>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="authgroupfile" id="authgroupfile">Directive</a> <a name="AuthGroupFile" id="AuthGroupFile">AuthGroupFile</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D<>finit le nom d'un fichier texte contenant la liste des
@@ -124,6 +90,40 @@ s
clients pourraient le t<>l<EFBFBD>charger.</p>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="requiredirectives" id="requiredirectives">The Require Directives</a></h2>
<p>Les directives <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> d'Apache permettent,
au cours de la phase d'autorisation, de s'assurer qu'un utilisateur
est bien autoris<69> <20> acc<63>der <20> une ressource. mod_authz_groupfile ajoute
les types d'autorisation <code>group</code> et <code>file-group</code>.
</p>
<p>A partir de la version 2.4.8, les directives require groupfile
supportent les <a href="../expr.html">expressions</a>.</p>
<h3><a name="reqgroup" id="reqgroup">Require group</a></h3>
<p>Cette directive permet de sp<73>cifier <20> quel groupe un utilisateur
doit appartenir pour obtenir l'autorisation d'acc<63>s.</p>
<pre class="prettyprint lang-config">Require group admin</pre>
<h3><a name="reqfilegroup" id="reqfilegroup">Require file-group</a></h3>
<p>Lorsque cette directive est d<>finie, l'utilisateur doit
appartenir au groupe du fichier pour pouvoir y acc<63>der.</p>
<pre class="prettyprint lang-config">Require file-group</pre>
</div>
</div>
<div class="bottomlang">

View File

@@ -53,7 +53,6 @@
<ul class="seealso">
<li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li>
</ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AuthGroupFile" id="AuthGroupFile">AuthGroupFile</a> <a name="authgroupfile" id="authgroupfile">ディレクティブ</a></h2>
<table class="directive">
@@ -95,6 +94,7 @@
</div>
</div>
</div>
<div class="bottomlang">
<p><span>翻訳済み言語: </span><a href="../en/mod/mod_authz_groupfile.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -51,7 +51,6 @@
<li><code class="directive"><a href="../mod/core.html#require">Require</a></code></li>
<li><code class="directive"><a href="../mod/core.html#satisfy">Satisfy</a></code></li>
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AuthGroupFile" id="AuthGroupFile">AuthGroupFile</a> <a name="authgroupfile" id="authgroupfile"><3E><><EFBFBD>þ<EFBFBD></a></h2>
<table class="directive">
@@ -86,6 +85,7 @@
</div>
</div>
</div>
<div class="bottomlang">
<p><span><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: </span><a href="../en/mod/mod_authz_groupfile.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -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>
&lt;form action="" method="get"&gt;<br />
<span class="indent">
Show me a &lt;select name="F"&gt;<br />
<span class="indent">
&lt;option value="0"&gt; Plain list&lt;/option&gt;<br />
&lt;option value="1" selected="selected"&gt; Fancy list&lt;/option&gt;<br />
&lt;option value="2"&gt; Table list&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
Sorted by &lt;select name="C"&gt;<br />
<span class="indent">
&lt;option value="N" selected="selected"&gt; Name&lt;/option&gt;<br />
&lt;option value="M"&gt; Date Modified&lt;/option&gt;<br />
&lt;option value="S"&gt; Size&lt;/option&gt;<br />
&lt;option value="D"&gt; Description&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
&lt;select name="O"&gt;<br />
<span class="indent">
&lt;option value="A" selected="selected"&gt; Ascending&lt;/option&gt;<br />
&lt;option value="D"&gt; Descending&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
&lt;select name="V"&gt;<br />
<span class="indent">
&lt;option value="0" selected="selected"&gt; in Normal order&lt;/option&gt;<br />
&lt;option value="1"&gt; in Version order&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
Matching &lt;input type="text" name="P" value="*" /&gt;<br />
&lt;input type="submit" name="X" value="Go" /&gt;<br />
</span>
&lt;/form&gt;
</code></p></div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AddAlt" id="AddAlt">AddAlt</a> <a name="addalt" id="addalt">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Alternate text to display for a file, instead of an
@@ -1012,6 +910,108 @@ ReadmeName /include/FOOTER.html</pre>
<p>See also <code class="directive"><a href="#headername">HeaderName</a></code>, where this behavior is described in greater
detail.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="query" id="query">Autoindex Request Query Arguments</a></h2>
<p>Various query string arguments are available to give the client
some control over the ordering of the directory listing, as well as
what files are listed. If you do not wish to give the client this
control, the <code><a href="#indexoptions.ignoreclient">IndexOptions
IgnoreClient</a></code> option disables that functionality.</p>
<p>The column sorting headers themselves are self-referencing
hyperlinks that add the sort query options shown below. Any
option below may be added to any request for the directory
resource.</p>
<ul>
<li><code>C=N</code> sorts the directory by file name</li>
<li><code>C=M</code> sorts the directory by last-modified
date, then file name</li>
<li><code>C=S</code> sorts the directory by size, then file
name</li>
<li class="separate"><code>C=D</code> sorts the directory by description, then
file name</li>
<li><code>O=A</code> sorts the listing in Ascending
Order</li>
<li class="separate"><code>O=D</code> sorts the listing in Descending
Order</li>
<li><code>F=0</code> formats the listing as a simple list
(not FancyIndexed)</li>
<li><code>F=1</code> formats the listing as a FancyIndexed
list</li>
<li class="separate"><code>F=2</code> formats the listing as an
HTMLTable FancyIndexed list</li>
<li><code>V=0</code> disables version sorting</li>
<li class="separate"><code>V=1</code> enables version sorting</li>
<li><code>P=<var>pattern</var></code> lists only files matching
the given <var>pattern</var></li>
</ul>
<p>Note that the 'P'attern query argument is tested
<em>after</em> the usual <code class="directive"><a href="#indexignore">IndexIgnore</a></code> directives are processed,
and all file names are still subjected to the same criteria as
any other autoindex listing. The Query Arguments parser in
<code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> will stop abruptly when an unrecognized
option is encountered. The Query Arguments must be well formed,
according to the table above.</p>
<p>The simple example below, which can be clipped and saved in
a header.html file, illustrates these query options. Note that
the unknown "X" argument, for the submit button, is listed last
to assure the arguments are all parsed before mod_autoindex
encounters the X=Go input.</p>
<div class="example"><p><code>
&lt;form action="" method="get"&gt;<br />
<span class="indent">
Show me a &lt;select name="F"&gt;<br />
<span class="indent">
&lt;option value="0"&gt; Plain list&lt;/option&gt;<br />
&lt;option value="1" selected="selected"&gt; Fancy list&lt;/option&gt;<br />
&lt;option value="2"&gt; Table list&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
Sorted by &lt;select name="C"&gt;<br />
<span class="indent">
&lt;option value="N" selected="selected"&gt; Name&lt;/option&gt;<br />
&lt;option value="M"&gt; Date Modified&lt;/option&gt;<br />
&lt;option value="S"&gt; Size&lt;/option&gt;<br />
&lt;option value="D"&gt; Description&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
&lt;select name="O"&gt;<br />
<span class="indent">
&lt;option value="A" selected="selected"&gt; Ascending&lt;/option&gt;<br />
&lt;option value="D"&gt; Descending&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
&lt;select name="V"&gt;<br />
<span class="indent">
&lt;option value="0" selected="selected"&gt; in Normal order&lt;/option&gt;<br />
&lt;option value="1"&gt; in Version order&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
Matching &lt;input type="text" name="P" value="*" /&gt;<br />
&lt;input type="submit" name="X" value="Go" /&gt;<br />
</span>
&lt;/form&gt;
</code></p></div>
</div>
</div>
<div class="bottomlang">

View File

@@ -101,115 +101,6 @@ shell Win32 <code>dir</code></td></tr>
<li><img alt="" src="../images/down.gif" /> <a href="#query">Arguments de la requ<71>te d'autoindexation</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="query" id="query">Arguments de la requ<71>te d'autoindexation</a></h2>
<p>La cha<68>ne de param<61>tres de la requ<71>te peut contenir de nombreux
arguments permettant dans une certaine mesure au client de contr<74>ler
l'ordre de l'index du r<>pertoire, ainsi que la liste des fichiers <20>
afficher. Si vous souhaitez d<>sactiver cette fonctionnalit<69>,
utilisez l'option <code><a href="#indexoptions.ignoreclient">IndexOptions
IgnoreClient</a></code>.</p>
<p>Les en-t<>tes de tri des colonnes eux-m<>mes sont des hyper-liens
auto-r<>f<EFBFBD>rant qui ajoutent les options de tri <20> la requ<71>te <20>num<75>r<EFBFBD>es
ci-dessous qui peuvent <20>tre ajout<75>es <20> toute requ<71>te concernant la
ressource r<>pertoire.</p>
<ul>
<li><code>C=N</code> trie l'affichage en fonction du nom de
fichier</li>
<li><code>C=M</code> trie l'affichage en fonction de la date de
derni<6E>re modification, puis du nom de fichier</li>
<li><code>C=S</code> trie l'affichage en fonction de la taille,
puis du nom de fichier</li>
<li class="separate"><code>C=D</code> trie l'affichage en fonction
de la description, puis du nom de fichier</li>
<li><code>O=A</code> trie l'affichage selon l'ordre croissant</li>
<li class="separate"><code>O=D</code> trie l'affichage selon
l'ordre d<>croissant</li>
<li><code>F=0</code> affiche le listing sous la forme d'une simple
liste (sans FancyIndex)</li>
<li><code>F=1</code> affiche le listing avec en-t<>tes de colonnes
sous forme de liens hyper-textes (FancyIndexed)</li>
<li class="separate"><code>F=2</code> affiche le listing sous
forme de table HTML avec en-t<>tes de colonnes contenant des liens
hyper-textes (FancyIndexed)</li>
<li><code>V=0</code> d<>sactive le tri en fonction de la
version</li>
<li class="separate"><code>V=1</code> active le tri en fonction de
la version</li>
<li><code>P=<var>mod<6F>le</var></code> n'affiche que les fichiers
correspondant au <var>mod<6F>le</var> sp<73>cifi<66></li>
</ul>
<p>Notez que l'argument 'P' (pour Pattern) n'est test<73>
qu'<em>apr<70>s</em> que les directives habituelles <code class="directive"><a href="#indexignore">IndexIgnore</a></code> ont <20>t<EFBFBD> trait<69>es,
et que tous les noms de fichiers sont encore assujettis aux m<>mes
crit<69>res que pour tout autre listing auto-index<65>. L'interpr<70>teur
d'arguments de requ<71>te de <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> s'arr<72>te
imm<6D>diatement s'il rencontre une option non reconnue. Les arguments
de requ<71>te doivent <20>tre bien form<72>s, selon la table ci-dessus.</p>
<p>Les options de requ<71>tes sont illustr<74>es par l'exemple ci-dessous,
qui peut <20>tre copi<70> et coll<6C> 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 <20>t<EFBFBD>
interpr<70>t<EFBFBD>s avant que mod_autoindex ne rencontre l'entr<74>e X=Go.</p>
<div class="example"><p><code>
&lt;form action="" method="get"&gt;<br />
<span class="indent">
Montre moi une &lt;select name="F"&gt;<br />
<span class="indent">
&lt;option value="0"&gt; liste simple&lt;/option&gt;<br />
&lt;option value="1" selected="selected"&gt; liste avec
en-t<>tes&lt;/option&gt;<br />
&lt;option value="2"&gt; liste avec en-t<>te sous forme de
table&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
tri<72>e par &lt;select name="C"&gt;<br />
<span class="indent">
&lt;option value="N" selected="selected"&gt; nom&lt;/option&gt;<br />
&lt;option value="M"&gt; date de modification&lt;/option&gt;<br />
&lt;option value="S"&gt; taille&lt;/option&gt;<br />
&lt;option value="D"&gt; description&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
&lt;select name="O"&gt;<br />
<span class="indent">
&lt;option value="A" selected="selected"&gt; croissant&lt;/option&gt;<br />
&lt;option value="D"&gt; d<>croissant&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
&lt;select name="V"&gt;<br />
<span class="indent">
&lt;option value="0" selected="selected"&gt; dans l'ordre
normal&lt;/option&gt;<br />
&lt;option value="1"&gt; en fonction de la version&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
correspondant <20> &lt;input type="text" name="P" value="*" /&gt;<br />
&lt;input type="submit" name="X" value="Go" /&gt;<br />
</span>
&lt;/form&gt;
</code></p></div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="addalt" id="addalt">Directive</a> <a name="AddAlt" id="AddAlt">AddAlt</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Texte optionnel <20> afficher <20> la place d'un ic<69>ne pour un
@@ -1097,6 +988,115 @@ ReadmeName /include/FOOTER.html</pre>
<p>Voir aussi la directive <code class="directive"><a href="#headername">HeaderName</a></code>, o<> cette fonctionnalit<69> est d<>crite plus en
d<>tails.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="query" id="query">Arguments de la requ<71>te d'autoindexation</a></h2>
<p>La cha<68>ne de param<61>tres de la requ<71>te peut contenir de nombreux
arguments permettant dans une certaine mesure au client de contr<74>ler
l'ordre de l'index du r<>pertoire, ainsi que la liste des fichiers <20>
afficher. Si vous souhaitez d<>sactiver cette fonctionnalit<69>,
utilisez l'option <code><a href="#indexoptions.ignoreclient">IndexOptions
IgnoreClient</a></code>.</p>
<p>Les en-t<>tes de tri des colonnes eux-m<>mes sont des hyper-liens
auto-r<>f<EFBFBD>rant qui ajoutent les options de tri <20> la requ<71>te <20>num<75>r<EFBFBD>es
ci-dessous qui peuvent <20>tre ajout<75>es <20> toute requ<71>te concernant la
ressource r<>pertoire.</p>
<ul>
<li><code>C=N</code> trie l'affichage en fonction du nom de
fichier</li>
<li><code>C=M</code> trie l'affichage en fonction de la date de
derni<6E>re modification, puis du nom de fichier</li>
<li><code>C=S</code> trie l'affichage en fonction de la taille,
puis du nom de fichier</li>
<li class="separate"><code>C=D</code> trie l'affichage en fonction
de la description, puis du nom de fichier</li>
<li><code>O=A</code> trie l'affichage selon l'ordre croissant</li>
<li class="separate"><code>O=D</code> trie l'affichage selon
l'ordre d<>croissant</li>
<li><code>F=0</code> affiche le listing sous la forme d'une simple
liste (sans FancyIndex)</li>
<li><code>F=1</code> affiche le listing avec en-t<>tes de colonnes
sous forme de liens hyper-textes (FancyIndexed)</li>
<li class="separate"><code>F=2</code> affiche le listing sous
forme de table HTML avec en-t<>tes de colonnes contenant des liens
hyper-textes (FancyIndexed)</li>
<li><code>V=0</code> d<>sactive le tri en fonction de la
version</li>
<li class="separate"><code>V=1</code> active le tri en fonction de
la version</li>
<li><code>P=<var>mod<6F>le</var></code> n'affiche que les fichiers
correspondant au <var>mod<6F>le</var> sp<73>cifi<66></li>
</ul>
<p>Notez que l'argument 'P' (pour Pattern) n'est test<73>
qu'<em>apr<70>s</em> que les directives habituelles <code class="directive"><a href="#indexignore">IndexIgnore</a></code> ont <20>t<EFBFBD> trait<69>es,
et que tous les noms de fichiers sont encore assujettis aux m<>mes
crit<69>res que pour tout autre listing auto-index<65>. L'interpr<70>teur
d'arguments de requ<71>te de <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> s'arr<72>te
imm<6D>diatement s'il rencontre une option non reconnue. Les arguments
de requ<71>te doivent <20>tre bien form<72>s, selon la table ci-dessus.</p>
<p>Les options de requ<71>tes sont illustr<74>es par l'exemple ci-dessous,
qui peut <20>tre copi<70> et coll<6C> 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 <20>t<EFBFBD>
interpr<70>t<EFBFBD>s avant que mod_autoindex ne rencontre l'entr<74>e X=Go.</p>
<div class="example"><p><code>
&lt;form action="" method="get"&gt;<br />
<span class="indent">
Montre moi une &lt;select name="F"&gt;<br />
<span class="indent">
&lt;option value="0"&gt; liste simple&lt;/option&gt;<br />
&lt;option value="1" selected="selected"&gt; liste avec
en-t<>tes&lt;/option&gt;<br />
&lt;option value="2"&gt; liste avec en-t<>te sous forme de
table&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
tri<72>e par &lt;select name="C"&gt;<br />
<span class="indent">
&lt;option value="N" selected="selected"&gt; nom&lt;/option&gt;<br />
&lt;option value="M"&gt; date de modification&lt;/option&gt;<br />
&lt;option value="S"&gt; taille&lt;/option&gt;<br />
&lt;option value="D"&gt; description&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
&lt;select name="O"&gt;<br />
<span class="indent">
&lt;option value="A" selected="selected"&gt; croissant&lt;/option&gt;<br />
&lt;option value="D"&gt; d<>croissant&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
&lt;select name="V"&gt;<br />
<span class="indent">
&lt;option value="0" selected="selected"&gt; dans l'ordre
normal&lt;/option&gt;<br />
&lt;option value="1"&gt; en fonction de la version&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
correspondant <20> &lt;input type="text" name="P" value="*" /&gt;<br />
&lt;input type="submit" name="X" value="Go" /&gt;<br />
</span>
&lt;/form&gt;
</code></p></div>
</div>
</div>
<div class="bottomlang">

View File

@@ -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>
&lt;form action="" method="get"&gt;<br />
<span class="indent">
Show me a &lt;select name="F"&gt;<br />
<span class="indent">
&lt;option value="0"&gt; Plain list&lt;/option&gt;<br />
&lt;option value="1" selected="selected"&gt; Fancy list&lt;/option&gt;<br />
&lt;option value="2"&gt; Table list&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
Sorted by &lt;select name="C"&gt;<br />
<span class="indent">
&lt;option value="N" selected="selected"&gt; Name&lt;/option&gt;<br />
&lt;option value="M"&gt; Date Modified&lt;/option&gt;<br />
&lt;option value="S"&gt; Size&lt;/option&gt;<br />
&lt;option value="D"&gt; Description&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
&lt;select name="O"&gt;<br />
<span class="indent">
&lt;option value="A" selected="selected"&gt; Ascending&lt;/option&gt;<br />
&lt;option value="D"&gt; Descending&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
&lt;select name="V"&gt;<br />
<span class="indent">
&lt;option value="0" selected="selected"&gt; in Normal order&lt;/option&gt;<br />
&lt;option value="1"&gt; in Version order&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
Matching &lt;input type="text" name="P" value="*" /&gt;<br />
&lt;input type="submit" name="X" value="Go" /&gt;<br />
</span>
&lt;/form&gt;
</code></p></div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AddAlt" id="AddAlt">AddAlt</a> <a name="addalt" id="addalt">ディレクティブ</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>アイコンの代わりに
@@ -1042,6 +932,116 @@ Name|Date|Size|Description</code></td></tr>
<p>より詳細にまでこの挙動について記述している <code class="directive"><a href="#headername">HeaderName</a></code>
もご覧下さい。</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="query" id="query">Autoindex リクエストクエリー引数</a></h2>
<p>Apache 2.0.23 で、
コラムソートのためにクエリー引数を再編成して、
新しいクエリーオプションのグループを導入しました。
出力に対するクライアントのすべての制御を効率的に抹消
できるように、
<code><a href="#indexoptions.ignoreclient">IndexOptions
IgnoreClient</a></code> が導入されました。</p>
<p>コラムソートのヘッダそれ自体が、
下記のソートクエリーオプションを付加する
自分自身を参照するリンクです。
下記のオプションのどれでも、
ディレクトリリソースへのリクエストに加えることができます。</p>
<ul>
<li><code>C=N</code> は、ファイル名でソートします。</li>
<li><code>C=M</code> は、更新日時、
ディレクトリ、ファイル名の順でソートします。</li>
<li><code>C=S</code> は、サイズ、
ディレクトリ、ファイル名の順でソートします。</li>
<li class="separate"><code>C=D</code> は、説明、
ディレクトリ、ファイル名の順でソートします。</li>
<li><code>O=A</code> は、昇順で表をソートします。</li>
<li class="separate"><code>O=D</code> は、降順で表をソートします。</li>
<li><code>F=0</code> は、単純な表の書式にします。
(FancyIndex ではありません。)</li>
<li><code>F=1</code> は、FancyIndex
表示の表の書式にします。</li>
<li><code>F=2</code> は、表を HTML
のテーブルを使った FancyIndex の書式にします。</li>
<li><code>V=0</code>
は、バージョンによるソートを無効にします。</li>
<li class="separate"><code>V=1</code>
は、バージョンによるソートを有効にします。</li>
<li><code>P=<var>pattern</var></code>
は、与えられた <var>pattern</var>
に適合したファイルのみを表示します。</li>
</ul>
<p>"P (パターンの P)" クエリー引数は、
通常の <code class="directive"><a href="#indexignore">IndexIgnore</a></code>
ディレクティブが処理された<em>後</em>に検査され、
ファイル名全てが、他の autoindex
リスト処理と同様の判定基準下に置かれ続ける
ことに注意してください。
<code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> のクエリー引数パーサ (解析) は、
認識不能なオプションにぶつかると即座に停止します。
クエリー引数は上の表に従って
正しい形式になっていなければなりません。</p>
<p>下の単純な例は、これらのクエリーオプションを
表します。これをそのまま切り取って HEADER.html
ファイルに保存することもできます。
mod_autoindex が X=Go 入力にぶつかる前に
引数が全て解釈されるように、
未知の引数 "X" はリストの最後に置かれています。</p>
<div class="example"><p><code>
&lt;form action="" method="get"&gt;<br />
<span class="indent">
Show me a &lt;select name="F"&gt;<br />
<span class="indent">
&lt;option value="0"&gt; Plain list&lt;/option&gt;<br />
&lt;option value="1" selected="selected"&gt; Fancy list&lt;/option&gt;<br />
&lt;option value="2"&gt; Table list&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
Sorted by &lt;select name="C"&gt;<br />
<span class="indent">
&lt;option value="N" selected="selected"&gt; Name&lt;/option&gt;<br />
&lt;option value="M"&gt; Date Modified&lt;/option&gt;<br />
&lt;option value="S"&gt; Size&lt;/option&gt;<br />
&lt;option value="D"&gt; Description&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
&lt;select name="O"&gt;<br />
<span class="indent">
&lt;option value="A" selected="selected"&gt; Ascending&lt;/option&gt;<br />
&lt;option value="D"&gt; Descending&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
&lt;select name="V"&gt;<br />
<span class="indent">
&lt;option value="0" selected="selected"&gt; in Normal order&lt;/option&gt;<br />
&lt;option value="1"&gt; in Version order&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
Matching &lt;input type="text" name="P" value="*" /&gt;<br />
&lt;input type="submit" name="X" value="Go" /&gt;<br />
</span>
&lt;/form&gt;
</code></p></div>
</div>
</div>
<div class="bottomlang">

View File

@@ -97,97 +97,6 @@
<li><img alt="" src="../images/down.gif" /> <a href="#query">Autoindex <20><>û <20>ƱԸ<C6B1>Ʈ</a></li>
</ul><ul class="seealso"><li><a href="#comments_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 <20><>û <20>ƱԸ<C6B1>Ʈ</a></h2>
<p><3E><><EFBFBD><EFBFBD>ġ 2.0.23<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>û <20>ƱԸ<C6B1>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD>,
<20><><EFBFBD>ο<EFBFBD> <20>ɼǵ<C9BC><C7B5><EFBFBD> <20>߰<EFBFBD><DFB0>ߴ<EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <code><a href="#indexoptions.ignoreclient">IndexOptions
IgnoreClient</a></code> <20>ɼ<EFBFBD><C9BC><EFBFBD> <20>߰<EFBFBD><DFB0>Ǿ<EFBFBD><C7BE><EFBFBD>.</p>
<p><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20≯<EFBFBD><CCB8><EFBFBD> <20>Ʒ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>û <20>ɼ<EFBFBD><C9BC><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD>
<20><>ũ<EFBFBD><C5A9>. <20>Ʒ<EFBFBD> <20>ɼ<EFBFBD><C9BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><20>ڿ<EFBFBD><DABF><EFBFBD> <20><><EFBFBD><EFBFBD> <20><20><>û<EFBFBD><C3BB><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD>.</p>
<ul>
<li><code>C=N</code><3E><> <20><><EFBFBD>ϸ<EFBFBD> <20><><EFBFBD>̴<EFBFBD></li>
<li><code>C=M</code><3E><> <20>ֱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>, <20>׸<EFBFBD><D7B8><EFBFBD> <20><><EFBFBD>ϸ<EFBFBD> <20><><EFBFBD>̴<EFBFBD></li>
<li><code>C=S</code><3E><> ũ<><C5A9> <20><>, <20>׸<EFBFBD><D7B8><EFBFBD> <20><><EFBFBD>ϸ<EFBFBD> <20><><EFBFBD>̴<EFBFBD></li>
<li class="separate"><code>C=D</code><3E><> <20><><EFBFBD><EFBFBD> <20><>, <20>׸<EFBFBD><D7B8><EFBFBD> <20><><EFBFBD>ϸ<EFBFBD>
<20><><EFBFBD>̴<EFBFBD></li>
<li><code>O=A</code><3E><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD></li>
<li class="separate"><code>O=D</code><3E><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD></li>
<li><code>F=0</code><3E><> (FancyIndexed<65><64> <20>ƴ<EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̴<EFBFBD></li>
<li><code>F=1</code><3E><> FancyIndexed <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̴<EFBFBD></li>
<li class="separate"><code>F=2</code><3E><> HTMLTable FancyIndexed <20><><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>̴<EFBFBD></li>
<li><code>V=0</code><3E><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ´<CAB4></li>
<li class="separate"><code>V=1</code><3E><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD></li>
<li><code>P=<var>pattern</var></code><3E><> <20>־<EFBFBD><D6BE><EFBFBD> <var>pattern</var><3E><>
<20>ش<EFBFBD><D8B4>ϴ<EFBFBD> <20><><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD></li>
</ul>
<p>'P'attern <20>ƱԸ<C6B1>Ʈ<EFBFBD><C6AE> <20>Ϲ<EFBFBD><CFB9><EFBFBD><EFBFBD><EFBFBD> <code class="directive"><a href="#indexignore">IndexIgnore</a></code> <20><><EFBFBD>þ ó<><C3B3><EFBFBD><EFBFBD> <em><3E>Ŀ<EFBFBD></em>
<20>˻<EFBFBD><CBBB>ϱ<CFB1><E2B6A7><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٸ<EFBFBD> autoindex <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD>.
<code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code><3E><> <20><>û <20>ƱԸ<C6B1>Ʈ<EFBFBD><C6AE> <20>о<EFBFBD><D0BE><EFBFBD><EFBFBD>϶<EFBFBD>
<20><> <20><> <20><><EFBFBD><EFBFBD> <20>ɼ<EFBFBD><C9BC><EFBFBD> <20>߰<EFBFBD><DFB0>ϸ<EFBFBD> <20><> <20>̻<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ʴ´<CAB4>. <20><>û <20>ƱԸ<C6B1>Ʈ<EFBFBD><C6AE>
<20><><EFBFBD><EFBFBD> ǥ<><C7A5> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ѵ<EFBFBD>.</p>
<p>header.html <20><><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD> <20>Ʒ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><> <20>ɼǵ<C9BC><C7B5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>. submit <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD> "X" <20>ƱԸ<C6B1>Ʈ<EFBFBD><C6AE>
mod_autoindex<65><78> X=Go <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ƱԸ<C6B1>Ʈ<EFBFBD><C6AE> <20>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Ȯ<><C8AE><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ߴ<EFBFBD>.</p>
<div class="example"><p><code>
&lt;form action="" method="get"&gt;<br />
<span class="indent">
Show me a &lt;select name="F"&gt;<br />
<span class="indent">
&lt;option value="0"&gt; Plain list&lt;/option&gt;<br />
&lt;option value="1" selected="selected"&gt; Fancy list&lt;/option&gt;<br />
&lt;option value="2"&gt; Table list&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
Sorted by &lt;select name="C"&gt;<br />
<span class="indent">
&lt;option value="N" selected="selected"&gt; Name&lt;/option&gt;<br />
&lt;option value="M"&gt; Date Modified&lt;/option&gt;<br />
&lt;option value="S"&gt; Size&lt;/option&gt;<br />
&lt;option value="D"&gt; Description&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
&lt;select name="O"&gt;<br />
<span class="indent">
&lt;option value="A" selected="selected"&gt; Ascending&lt;/option&gt;<br />
&lt;option value="D"&gt; Descending&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
&lt;select name="V"&gt;<br />
<span class="indent">
&lt;option value="0" selected="selected"&gt; in Normal order&lt;/option&gt;<br />
&lt;option value="1"&gt; in Version order&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
Matching &lt;input type="text" name="P" value="*" /&gt;<br />
&lt;input type="submit" name="X" value="Go" /&gt;<br />
</span>
&lt;/form&gt;
</code></p></div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AddAlt" id="AddAlt">AddAlt</a> <a name="addalt" id="addalt"><3E><><EFBFBD>þ<EFBFBD></a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description"><3E><><EFBFBD><EFBFBD>:</a></th><td><3E><><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD></td></tr>
@@ -854,6 +763,97 @@ Name|Date|Size|Description</code></td></tr>
<p><3E><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ڼ<EFBFBD><DABC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <code class="directive"><a href="#headername">HeaderName</a></code><3E><> <20><><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD>.</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 <20><>û <20>ƱԸ<C6B1>Ʈ</a></h2>
<p><3E><><EFBFBD><EFBFBD>ġ 2.0.23<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>û <20>ƱԸ<C6B1>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD>,
<20><><EFBFBD>ο<EFBFBD> <20>ɼǵ<C9BC><C7B5><EFBFBD> <20>߰<EFBFBD><DFB0>ߴ<EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <code><a href="#indexoptions.ignoreclient">IndexOptions
IgnoreClient</a></code> <20>ɼ<EFBFBD><C9BC><EFBFBD> <20>߰<EFBFBD><DFB0>Ǿ<EFBFBD><C7BE><EFBFBD>.</p>
<p><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20≯<EFBFBD><CCB8><EFBFBD> <20>Ʒ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>û <20>ɼ<EFBFBD><C9BC><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD>
<20><>ũ<EFBFBD><C5A9>. <20>Ʒ<EFBFBD> <20>ɼ<EFBFBD><C9BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><20>ڿ<EFBFBD><DABF><EFBFBD> <20><><EFBFBD><EFBFBD> <20><20><>û<EFBFBD><C3BB><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD>.</p>
<ul>
<li><code>C=N</code><3E><> <20><><EFBFBD>ϸ<EFBFBD> <20><><EFBFBD>̴<EFBFBD></li>
<li><code>C=M</code><3E><> <20>ֱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>, <20>׸<EFBFBD><D7B8><EFBFBD> <20><><EFBFBD>ϸ<EFBFBD> <20><><EFBFBD>̴<EFBFBD></li>
<li><code>C=S</code><3E><> ũ<><C5A9> <20><>, <20>׸<EFBFBD><D7B8><EFBFBD> <20><><EFBFBD>ϸ<EFBFBD> <20><><EFBFBD>̴<EFBFBD></li>
<li class="separate"><code>C=D</code><3E><> <20><><EFBFBD><EFBFBD> <20><>, <20>׸<EFBFBD><D7B8><EFBFBD> <20><><EFBFBD>ϸ<EFBFBD>
<20><><EFBFBD>̴<EFBFBD></li>
<li><code>O=A</code><3E><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD></li>
<li class="separate"><code>O=D</code><3E><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD></li>
<li><code>F=0</code><3E><> (FancyIndexed<65><64> <20>ƴ<EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̴<EFBFBD></li>
<li><code>F=1</code><3E><> FancyIndexed <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̴<EFBFBD></li>
<li class="separate"><code>F=2</code><3E><> HTMLTable FancyIndexed <20><><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>̴<EFBFBD></li>
<li><code>V=0</code><3E><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ´<CAB4></li>
<li class="separate"><code>V=1</code><3E><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD></li>
<li><code>P=<var>pattern</var></code><3E><> <20>־<EFBFBD><D6BE><EFBFBD> <var>pattern</var><3E><>
<20>ش<EFBFBD><D8B4>ϴ<EFBFBD> <20><><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD></li>
</ul>
<p>'P'attern <20>ƱԸ<C6B1>Ʈ<EFBFBD><C6AE> <20>Ϲ<EFBFBD><CFB9><EFBFBD><EFBFBD><EFBFBD> <code class="directive"><a href="#indexignore">IndexIgnore</a></code> <20><><EFBFBD>þ ó<><C3B3><EFBFBD><EFBFBD> <em><3E>Ŀ<EFBFBD></em>
<20>˻<EFBFBD><CBBB>ϱ<CFB1><E2B6A7><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٸ<EFBFBD> autoindex <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD>.
<code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code><3E><> <20><>û <20>ƱԸ<C6B1>Ʈ<EFBFBD><C6AE> <20>о<EFBFBD><D0BE><EFBFBD><EFBFBD>϶<EFBFBD>
<20><> <20><> <20><><EFBFBD><EFBFBD> <20>ɼ<EFBFBD><C9BC><EFBFBD> <20>߰<EFBFBD><DFB0>ϸ<EFBFBD> <20><> <20>̻<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ʴ´<CAB4>. <20><>û <20>ƱԸ<C6B1>Ʈ<EFBFBD><C6AE>
<20><><EFBFBD><EFBFBD> ǥ<><C7A5> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ѵ<EFBFBD>.</p>
<p>header.html <20><><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD> <20>Ʒ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><> <20>ɼǵ<C9BC><C7B5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>. submit <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD> "X" <20>ƱԸ<C6B1>Ʈ<EFBFBD><C6AE>
mod_autoindex<65><78> X=Go <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ƱԸ<C6B1>Ʈ<EFBFBD><C6AE> <20>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Ȯ<><C8AE><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ߴ<EFBFBD>.</p>
<div class="example"><p><code>
&lt;form action="" method="get"&gt;<br />
<span class="indent">
Show me a &lt;select name="F"&gt;<br />
<span class="indent">
&lt;option value="0"&gt; Plain list&lt;/option&gt;<br />
&lt;option value="1" selected="selected"&gt; Fancy list&lt;/option&gt;<br />
&lt;option value="2"&gt; Table list&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
Sorted by &lt;select name="C"&gt;<br />
<span class="indent">
&lt;option value="N" selected="selected"&gt; Name&lt;/option&gt;<br />
&lt;option value="M"&gt; Date Modified&lt;/option&gt;<br />
&lt;option value="S"&gt; Size&lt;/option&gt;<br />
&lt;option value="D"&gt; Description&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
&lt;select name="O"&gt;<br />
<span class="indent">
&lt;option value="A" selected="selected"&gt; Ascending&lt;/option&gt;<br />
&lt;option value="D"&gt; Descending&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
&lt;select name="V"&gt;<br />
<span class="indent">
&lt;option value="0" selected="selected"&gt; in Normal order&lt;/option&gt;<br />
&lt;option value="1"&gt; in Version order&lt;/option&gt;<br />
</span>
&lt;/select&gt;<br />
Matching &lt;input type="text" name="P" value="*" /&gt;<br />
&lt;input type="submit" name="X" value="Go" /&gt;<br />
</span>
&lt;/form&gt;
</code></p></div>
</div>
</div>
<div class="bottomlang">

View File

@@ -97,98 +97,6 @@ yaptığı gibi dizin içeriğini listeler.</td></tr>
<li><img alt="" src="../images/down.gif" /> <a href="#query">Sütun Sıralamada Sorgu Seçenekleri</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="query" id="query">Sütun Sıralamada Sorgu Seçenekleri</a></h2>
<p>İstemciye, dizin içeriğini listelerken neleri hangi sırada
listeleyeceğini belirleyebilmesi için içerik üzerinde biraz denetim
sağlayabileceği çeşitli sorgu dizgesi bileşenleri sağlanmıştır.
Çıktı üzerinde kullanıcı denetimini tamamen ortadan kaldırmak için
<code class="directive"><a href="#indexoptions">IndexOptions</a></code> yönergesinin
<code><a href="#indexoptions.ignoreclient">IgnoreClient</a></code>
seçeneği kullanılabilir.</p>
<p>Sütun sıralama başlıklarının her biri hedefi kendisi olan birer hiper
bağ olup aşağıda sıralanan sorgu seçeneklerini kullanırlar. Bu
seçeneklerin her biri her dizin içerik listesi isteğine eklenebilir.</p>
<ul>
<li><code>C=N</code> dizini dosya adına göre sıralar</li>
<li><code>C=M</code> dizini son değişiklik zamanına ve ardından dosya
ismine göre sıralar.</li>
<li><code>C=S</code> dizini boyuta ve ardından dosya adına göre
sıralar</li>
<li class="separate"><code>C=D</code> dizini açıklamaya ve ardından
dosya adına göre sıralar.</li>
<li><code>O=A</code> artan sıralama uygulanır.</li>
<li class="separate"><code>O=D</code> azalan sıralama uygulanır.</li>
<li><code>F=0</code> listeleme basit listeleme biçiminde yapılır
(<code>FancyIndexing</code> seçeneği ile etkinleştirilen biçimde
değil)</li>
<li><code>F=1</code> listeleme <code>FancyIndexing</code> seçeneği ile
etkinleştirilen biçimde yapılır</li>
<li class="separate"><code>F=2</code> listeleme <code><a href="#indexoptions.fancyindexing">FancyIndexing</a></code> ve
<code><a href="#indexoptions.htmltable">HTMLTable</a></code> seçeneği
ile etkinleştirilen biçimde yapılır.</li>
<li><code>V=0</code> sürüme göre sıralama iptal edilir.</li>
<li class="separate"><code>V=1</code> sürüme göre sıralama etkin
kılınır.</li>
<li><code>P=<var>kalıp</var></code> sadece belirtilen
<code><em>kalıp</em></code> ile eşleşen dosyalar istelenir.</li>
</ul>
<p><code>P=<var>kalıp</var></code> sorgu seçeneğinin normalde <code class="directive"><a href="#indexignore">IndexIgnore</a></code> yönergesi işleme
sokulduktan sonra değerlendirildiğine ve dosya isimlerinin diğer
kendiliğinden içerik listeleme koşullarının konusu olmaya devam ettiğine
dikkat ediniz. <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> modülündeki Sorgu
Seçenekleri çözümleyicisi tanımadığı bir seçeneğe rastlar rastlamaz
işlemi durdurur. Sorgu Seçenekleri yukarıda belirtilene uygun olarak iyi
biçimli olmak zorundadır.</p>
<p>Aşağıdaki basit örnekte sorgu seçeneklerinin kullanımı gösterilmiştir.
Son satırda bulunan "submit" düğmesindeki tanınmayan "X" girdisine
dikkat ediniz. "X=Göster" girdisi tüm seçenekler işlendikten sonra
<code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> tarafından son argüman olarak ele
alınacak ve çözümleme işlemi o noktada duracaktır.</p>
<div class="example"><pre>&lt;form action="" method="get"&gt;
&lt;input type="text" name="P" value="*" /&gt; ile eşleşen
&lt;select name="C"&gt;
&lt;option value="N" selected="selected"&gt;isme&lt;/option&gt;
&lt;option value="M"&gt; değişiklik tarihine&lt;/option&gt;
&lt;option value="S"&gt; boyuta&lt;/option&gt;
&lt;option value="D"&gt; açıklamaya&lt;/option&gt;
&lt;/select&gt; göre
&lt;select name="O"&gt;
&lt;option value="A" selected="selected"&gt; artan&lt;/option&gt;
&lt;option value="D"&gt; azalan&lt;/option&gt;
&lt;/select&gt;
&lt;select name="V"&gt;
&lt;option value="0" selected="selected"&gt;normal&lt;/option&gt;
&lt;option value="1"&gt; sürümlü&lt;/option&gt;
&lt;/select&gt; sıralamayla bir
&lt;select name="F"&gt;
&lt;option value="0"&gt; basit liste&lt;/option&gt;
&lt;option value="1" selected="selected"&gt; süslü liste&lt;/option&gt;
&lt;option value="2"&gt; tablolu liste&lt;/option&gt;
&lt;/select&gt;
&lt;input type="submit" name="X" value="Göster" /&gt;
&lt;/form&gt;</pre></div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AddAlt" id="AddAlt">AddAlt</a> <a name="addalt" id="addalt">Yönergesi</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Dosyaya göre seçilen simgenin yerinde gösterilecek metni belirler.
@@ -1036,6 +944,98 @@ belirler.</td></tr>
<p>Ayrıca bu davranışın daha ayrıntılı ele alındığı <code class="directive"><a href="#headername">HeaderName</a></code> yönergesine de
bakınız.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="query" id="query">Sütun Sıralamada Sorgu Seçenekleri</a></h2>
<p>İstemciye, dizin içeriğini listelerken neleri hangi sırada
listeleyeceğini belirleyebilmesi için içerik üzerinde biraz denetim
sağlayabileceği çeşitli sorgu dizgesi bileşenleri sağlanmıştır.
Çıktı üzerinde kullanıcı denetimini tamamen ortadan kaldırmak için
<code class="directive"><a href="#indexoptions">IndexOptions</a></code> yönergesinin
<code><a href="#indexoptions.ignoreclient">IgnoreClient</a></code>
seçeneği kullanılabilir.</p>
<p>Sütun sıralama başlıklarının her biri hedefi kendisi olan birer hiper
bağ olup aşağıda sıralanan sorgu seçeneklerini kullanırlar. Bu
seçeneklerin her biri her dizin içerik listesi isteğine eklenebilir.</p>
<ul>
<li><code>C=N</code> dizini dosya adına göre sıralar</li>
<li><code>C=M</code> dizini son değişiklik zamanına ve ardından dosya
ismine göre sıralar.</li>
<li><code>C=S</code> dizini boyuta ve ardından dosya adına göre
sıralar</li>
<li class="separate"><code>C=D</code> dizini açıklamaya ve ardından
dosya adına göre sıralar.</li>
<li><code>O=A</code> artan sıralama uygulanır.</li>
<li class="separate"><code>O=D</code> azalan sıralama uygulanır.</li>
<li><code>F=0</code> listeleme basit listeleme biçiminde yapılır
(<code>FancyIndexing</code> seçeneği ile etkinleştirilen biçimde
değil)</li>
<li><code>F=1</code> listeleme <code>FancyIndexing</code> seçeneği ile
etkinleştirilen biçimde yapılır</li>
<li class="separate"><code>F=2</code> listeleme <code><a href="#indexoptions.fancyindexing">FancyIndexing</a></code> ve
<code><a href="#indexoptions.htmltable">HTMLTable</a></code> seçeneği
ile etkinleştirilen biçimde yapılır.</li>
<li><code>V=0</code> sürüme göre sıralama iptal edilir.</li>
<li class="separate"><code>V=1</code> sürüme göre sıralama etkin
kılınır.</li>
<li><code>P=<var>kalıp</var></code> sadece belirtilen
<code><em>kalıp</em></code> ile eşleşen dosyalar istelenir.</li>
</ul>
<p><code>P=<var>kalıp</var></code> sorgu seçeneğinin normalde <code class="directive"><a href="#indexignore">IndexIgnore</a></code> yönergesi işleme
sokulduktan sonra değerlendirildiğine ve dosya isimlerinin diğer
kendiliğinden içerik listeleme koşullarının konusu olmaya devam ettiğine
dikkat ediniz. <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> modülündeki Sorgu
Seçenekleri çözümleyicisi tanımadığı bir seçeneğe rastlar rastlamaz
işlemi durdurur. Sorgu Seçenekleri yukarıda belirtilene uygun olarak iyi
biçimli olmak zorundadır.</p>
<p>Aşağıdaki basit örnekte sorgu seçeneklerinin kullanımı gösterilmiştir.
Son satırda bulunan "submit" düğmesindeki tanınmayan "X" girdisine
dikkat ediniz. "X=Göster" girdisi tüm seçenekler işlendikten sonra
<code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> tarafından son argüman olarak ele
alınacak ve çözümleme işlemi o noktada duracaktır.</p>
<div class="example"><pre>&lt;form action="" method="get"&gt;
&lt;input type="text" name="P" value="*" /&gt; ile eşleşen
&lt;select name="C"&gt;
&lt;option value="N" selected="selected"&gt;isme&lt;/option&gt;
&lt;option value="M"&gt; değişiklik tarihine&lt;/option&gt;
&lt;option value="S"&gt; boyuta&lt;/option&gt;
&lt;option value="D"&gt; açıklamaya&lt;/option&gt;
&lt;/select&gt; göre
&lt;select name="O"&gt;
&lt;option value="A" selected="selected"&gt; artan&lt;/option&gt;
&lt;option value="D"&gt; azalan&lt;/option&gt;
&lt;/select&gt;
&lt;select name="V"&gt;
&lt;option value="0" selected="selected"&gt;normal&lt;/option&gt;
&lt;option value="1"&gt; sürümlü&lt;/option&gt;
&lt;/select&gt; sıralamayla bir
&lt;select name="F"&gt;
&lt;option value="0"&gt; basit liste&lt;/option&gt;
&lt;option value="1" selected="selected"&gt; süslü liste&lt;/option&gt;
&lt;option value="2"&gt; tablolu liste&lt;/option&gt;
&lt;/select&gt;
&lt;input type="submit" name="X" value="Göster" /&gt;
&lt;/form&gt;</pre></div>
</div>
</div>
<div class="bottomlang">

View File

@@ -78,7 +78,6 @@
<ul class="seealso">
<li><a href="../filter.html">Filters</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="BufferSize" id="BufferSize">BufferSize</a> <a name="buffersize" id="buffersize">Directive</a></h2>
<table class="directive">
@@ -95,6 +94,7 @@
The default is 128 kilobytes.</p>
</div>
</div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/mod/mod_buffer.html" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -81,7 +81,6 @@ d'Apache</td></tr></table>
<ul class="seealso">
<li><a href="../filter.html">Les filtres</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="buffersize" id="buffersize">Directive</a> <a name="BufferSize" id="BufferSize">BufferSize</a></h2>
<table class="directive">
@@ -98,6 +97,7 @@ d'Apache</td></tr></table>
128 ko.</p>
</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_buffer.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -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
&lt;IfModule mod_cache.c&gt;
LoadModule cache_disk_module modules/mod_cache_disk.so
&lt;IfModule mod_cache_disk.c&gt;
CacheRoot c:/cacheroot
CacheEnable disk /
CacheDirLevels 5
CacheDirLength 3
&lt;/IfModule&gt;
# When acting as a proxy, don't cache the list of security updates
CacheDisable http://security.update.server/update-list/
&lt;/IfModule&gt;</pre>
</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="thunderingherd" id="thunderingherd">Avoiding the Thundering Herd</a></h2>
<p>When a cached entry becomes stale, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> will submit
a conditional request to the backend, which is expected to confirm whether the
cached entry is still fresh, and send an updated entity if not.</p>
<p>A small but finite amount of time exists between the time the cached entity
becomes stale, and the time the stale entity is fully refreshed. On a busy
server, a significant number of requests might arrive during this time, and
cause a <strong>thundering herd</strong> of requests to strike the backend
suddenly and unpredictably.</p>
<p>To keep the thundering herd at bay, the <code class="directive">CacheLock</code>
directive can be used to define a directory in which locks are created for
URLs <strong>in flight</strong>. The lock is used as a <strong>hint</strong>
by other requests to either suppress an attempt to cache (someone else has
gone to fetch the entity), or to indicate that a stale entry is being refreshed
(stale content will be returned in the mean time).
</p>
<h3>Initial caching of an entry</h3>
<p>When an entity is cached for the first time, a lock will be created for the
entity until the response has been fully cached. During the lifetime of the
lock, the cache will suppress the second and subsequent attempt to cache the
same entity. While this doesn't hold back the thundering herd, it does stop
the cache attempting to cache the same entity multiple times simultaneously.
</p>
<h3>Refreshment of a stale entry</h3>
<p>When an entity reaches its freshness lifetime and becomes stale, a lock
will be created for the entity until the response has either been confirmed as
still fresh, or replaced by the backend. During the lifetime of the lock, the
second and subsequent incoming request will cause stale data to be returned,
and the thundering herd is kept at bay.</p>
<h3>Locks and Cache-Control: no-cache</h3>
<p>Locks are used as a <strong>hint only</strong> to enable the cache to be
more gentle on backend servers, however the lock can be overridden if necessary.
If the client sends a request with a Cache-Control header forcing a reload, any
lock that may be present will be ignored, and the client's request will be
honored immediately and the cached entry refreshed.</p>
<p>As a further safety mechanism, locks have a configurable maximum age.
Once this age has been reached, the lock is removed, and a new request is
given the opportunity to create a new lock. This maximum age can be set using
the <code class="directive">CacheLockMaxAge</code> directive, and defaults to 5
seconds.
</p>
<h3>Example configuration</h3>
<div class="example"><h3>Enabling the cache lock</h3><pre class="prettyprint lang-config">#
# Enable the cache lock
#
&lt;IfModule mod_cache.c&gt;
CacheLock on
CacheLockPath /tmp/mod_cache-lock
CacheLockMaxAge 5
&lt;/IfModule&gt;</pre>
</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="finecontrol" id="finecontrol">Fine Control with the CACHE Filter</a></h2>
<p>Under the default mode of cache operation, the cache runs as a quick handler,
short circuiting the majority of server processing and offering the highest
cache performance available.</p>
<p>In this mode, the cache <strong>bolts onto</strong> the front of the server,
acting as if a free standing RFC 2616 caching proxy had been placed in front of
the server.</p>
<p>While this mode offers the best performance, the administrator may find that
under certain circumstances they may want to perform further processing on the
request after the request is cached, such as to inject personalisation into the
cached page, or to apply authorization restrictions to the content. Under these
circumstances, an administrator is often forced to place independent reverse
proxy servers either behind or in front of the caching server to achieve this.</p>
<p>To solve this problem the <code class="directive"><a href="#cachequickhandler">CacheQuickHandler
</a></code> directive can be set to <strong>off</strong>, and the server will
process all phases normally handled by a non-cached request, including the
<strong>authentication and authorization</strong> phases.</p>
<p>In addition, the administrator may optionally specify the <strong>precise point
within the filter chain</strong> where caching is to take place by adding the
<strong>CACHE</strong> filter to the output filter chain.</p>
<p>For example, to cache content before applying compression to the response,
place the <strong>CACHE</strong> filter before the <strong>DEFLATE</strong>
filter as in the example below:</p>
<pre class="prettyprint lang-config"># Cache content before optional compression
CacheQuickHandler off
AddOutputFilterByType CACHE;DEFLATE text/plain</pre>
<p>Another option is to have content cached before personalisation is applied
by <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> (or another content processing filter). In this
example templates containing tags understood by
<code class="module"><a href="../mod/mod_include.html">mod_include</a></code> are cached before being parsed:</p>
<pre class="prettyprint lang-config"># Cache content before mod_include and mod_deflate
CacheQuickHandler off
AddOutputFilterByType CACHE;INCLUDES;DEFLATE text/html</pre>
<p>You may place the <strong>CACHE</strong> filter anywhere you wish within the
filter chain. In this example, content is cached after being parsed by
<code class="module"><a href="../mod/mod_include.html">mod_include</a></code>, but before being processed by
<code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code>:</p>
<pre class="prettyprint lang-config"># Cache content between mod_include and mod_deflate
CacheQuickHandler off
AddOutputFilterByType INCLUDES;CACHE;DEFLATE text/html</pre>
<div class="warning"><h3>Warning:</h3>If the location of the
<strong>CACHE</strong> filter in the filter chain is changed for any reason,
you may need to <strong>flush your cache</strong> to ensure that your data
served remains consistent. <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> is not in a position
to enforce this for you.</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="status" id="status">Cache Status and Logging</a></h2>
<p>Once <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> has made a decision as to whether or not
an entity is to be served from cache, the detailed reason for the decision
is written to the subprocess environment within the request under the
<strong>cache-status</strong> key. This reason can be logged by the
<code class="directive"><a href="../mod/mod_log_config.html#logformat">LogFormat</a></code> directive as
follows:</p>
<pre class="prettyprint lang-config">LogFormat "%{cache-status}e ..."</pre>
<p>Based on the caching decision made, the reason is also written to the
subprocess environment under one the following four keys, as appropriate:</p>
<dl>
<dt>cache-hit</dt><dd>The response was served from cache.</dd>
<dt>cache-revalidate</dt><dd>The response was stale and was successfully
revalidated, then served from cache.</dd>
<dt>cache-miss</dt><dd>The response was served from the upstream server.</dd>
<dt>cache-invalidate</dt><dd>The cached entity was invalidated by a request
method other than GET or HEAD.</dd>
</dl>
<p>This makes it possible to support conditional logging of cached requests
as per the following example:</p>
<pre class="prettyprint lang-config">CustomLog cached-requests.log common env=cache-hit
CustomLog uncached-requests.log common env=cache-miss
CustomLog revalidated-requests.log common env=cache-revalidate
CustomLog invalidated-requests.log common env=cache-invalidate</pre>
<p>For module authors, a hook called <var>cache_status</var> is available,
allowing modules to respond to the caching outcomes above in customised
ways.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="CacheDefaultExpire" id="CacheDefaultExpire">CacheDefaultExpire</a> <a name="cachedefaultexpire" id="cachedefaultexpire">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The default duration to cache a document when no expiry date is specified.</td></tr>
@@ -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
&lt;IfModule mod_cache.c&gt;
LoadModule cache_disk_module modules/mod_cache_disk.so
&lt;IfModule mod_cache_disk.c&gt;
CacheRoot c:/cacheroot
CacheEnable disk /
CacheDirLevels 5
CacheDirLength 3
&lt;/IfModule&gt;
# When acting as a proxy, don't cache the list of security updates
CacheDisable http://security.update.server/update-list/
&lt;/IfModule&gt;</pre>
</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="thunderingherd" id="thunderingherd">Avoiding the Thundering Herd</a></h2>
<p>When a cached entry becomes stale, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> will submit
a conditional request to the backend, which is expected to confirm whether the
cached entry is still fresh, and send an updated entity if not.</p>
<p>A small but finite amount of time exists between the time the cached entity
becomes stale, and the time the stale entity is fully refreshed. On a busy
server, a significant number of requests might arrive during this time, and
cause a <strong>thundering herd</strong> of requests to strike the backend
suddenly and unpredictably.</p>
<p>To keep the thundering herd at bay, the <code class="directive">CacheLock</code>
directive can be used to define a directory in which locks are created for
URLs <strong>in flight</strong>. The lock is used as a <strong>hint</strong>
by other requests to either suppress an attempt to cache (someone else has
gone to fetch the entity), or to indicate that a stale entry is being refreshed
(stale content will be returned in the mean time).
</p>
<h3>Initial caching of an entry</h3>
<p>When an entity is cached for the first time, a lock will be created for the
entity until the response has been fully cached. During the lifetime of the
lock, the cache will suppress the second and subsequent attempt to cache the
same entity. While this doesn't hold back the thundering herd, it does stop
the cache attempting to cache the same entity multiple times simultaneously.
</p>
<h3>Refreshment of a stale entry</h3>
<p>When an entity reaches its freshness lifetime and becomes stale, a lock
will be created for the entity until the response has either been confirmed as
still fresh, or replaced by the backend. During the lifetime of the lock, the
second and subsequent incoming request will cause stale data to be returned,
and the thundering herd is kept at bay.</p>
<h3>Locks and Cache-Control: no-cache</h3>
<p>Locks are used as a <strong>hint only</strong> to enable the cache to be
more gentle on backend servers, however the lock can be overridden if necessary.
If the client sends a request with a Cache-Control header forcing a reload, any
lock that may be present will be ignored, and the client's request will be
honored immediately and the cached entry refreshed.</p>
<p>As a further safety mechanism, locks have a configurable maximum age.
Once this age has been reached, the lock is removed, and a new request is
given the opportunity to create a new lock. This maximum age can be set using
the <code class="directive">CacheLockMaxAge</code> directive, and defaults to 5
seconds.
</p>
<h3>Example configuration</h3>
<div class="example"><h3>Enabling the cache lock</h3><pre class="prettyprint lang-config">#
# Enable the cache lock
#
&lt;IfModule mod_cache.c&gt;
CacheLock on
CacheLockPath /tmp/mod_cache-lock
CacheLockMaxAge 5
&lt;/IfModule&gt;</pre>
</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="finecontrol" id="finecontrol">Fine Control with the CACHE Filter</a></h2>
<p>Under the default mode of cache operation, the cache runs as a quick handler,
short circuiting the majority of server processing and offering the highest
cache performance available.</p>
<p>In this mode, the cache <strong>bolts onto</strong> the front of the server,
acting as if a free standing RFC 2616 caching proxy had been placed in front of
the server.</p>
<p>While this mode offers the best performance, the administrator may find that
under certain circumstances they may want to perform further processing on the
request after the request is cached, such as to inject personalisation into the
cached page, or to apply authorization restrictions to the content. Under these
circumstances, an administrator is often forced to place independent reverse
proxy servers either behind or in front of the caching server to achieve this.</p>
<p>To solve this problem the <code class="directive"><a href="#cachequickhandler">CacheQuickHandler
</a></code> directive can be set to <strong>off</strong>, and the server will
process all phases normally handled by a non-cached request, including the
<strong>authentication and authorization</strong> phases.</p>
<p>In addition, the administrator may optionally specify the <strong>precise point
within the filter chain</strong> where caching is to take place by adding the
<strong>CACHE</strong> filter to the output filter chain.</p>
<p>For example, to cache content before applying compression to the response,
place the <strong>CACHE</strong> filter before the <strong>DEFLATE</strong>
filter as in the example below:</p>
<pre class="prettyprint lang-config"># Cache content before optional compression
CacheQuickHandler off
AddOutputFilterByType CACHE;DEFLATE text/plain</pre>
<p>Another option is to have content cached before personalisation is applied
by <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> (or another content processing filter). In this
example templates containing tags understood by
<code class="module"><a href="../mod/mod_include.html">mod_include</a></code> are cached before being parsed:</p>
<pre class="prettyprint lang-config"># Cache content before mod_include and mod_deflate
CacheQuickHandler off
AddOutputFilterByType CACHE;INCLUDES;DEFLATE text/html</pre>
<p>You may place the <strong>CACHE</strong> filter anywhere you wish within the
filter chain. In this example, content is cached after being parsed by
<code class="module"><a href="../mod/mod_include.html">mod_include</a></code>, but before being processed by
<code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code>:</p>
<pre class="prettyprint lang-config"># Cache content between mod_include and mod_deflate
CacheQuickHandler off
AddOutputFilterByType INCLUDES;CACHE;DEFLATE text/html</pre>
<div class="warning"><h3>Warning:</h3>If the location of the
<strong>CACHE</strong> filter in the filter chain is changed for any reason,
you may need to <strong>flush your cache</strong> to ensure that your data
served remains consistent. <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> is not in a position
to enforce this for you.</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="status" id="status">Cache Status and Logging</a></h2>
<p>Once <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> has made a decision as to whether or not
an entity is to be served from cache, the detailed reason for the decision
is written to the subprocess environment within the request under the
<strong>cache-status</strong> key. This reason can be logged by the
<code class="directive"><a href="../mod/mod_log_config.html#logformat">LogFormat</a></code> directive as
follows:</p>
<pre class="prettyprint lang-config">LogFormat "%{cache-status}e ..."</pre>
<p>Based on the caching decision made, the reason is also written to the
subprocess environment under one the following four keys, as appropriate:</p>
<dl>
<dt>cache-hit</dt><dd>The response was served from cache.</dd>
<dt>cache-revalidate</dt><dd>The response was stale and was successfully
revalidated, then served from cache.</dd>
<dt>cache-miss</dt><dd>The response was served from the upstream server.</dd>
<dt>cache-invalidate</dt><dd>The cached entity was invalidated by a request
method other than GET or HEAD.</dd>
</dl>
<p>This makes it possible to support conditional logging of cached requests
as per the following example:</p>
<pre class="prettyprint lang-config">CustomLog cached-requests.log common env=cache-hit
CustomLog uncached-requests.log common env=cache-miss
CustomLog revalidated-requests.log common env=cache-revalidate
CustomLog invalidated-requests.log common env=cache-invalidate</pre>
<p>For module authors, a hook called <var>cache_status</var> is available,
allowing modules to respond to the caching outcomes above in customised
ways.</p>
</div>
</div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/mod/mod_cache.html" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -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 apparent<6E>s et directives</a></h2>
<table class="related"><tr><th>Modules Apparent<6E>s</th><th>Directives Apparent<6E>es</th></tr><tr><td><ul><li><code class="module"><a href="../mod/mod_cache_socache.html">mod_cache_socache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheroot">CacheRoot</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlevels">CacheDirLevels</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlength">CacheDirLength</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheminfilesize">CacheMinFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachemaxfilesize">CacheMaxFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocache">CacheSocache</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemaxtime">CacheSocacheMaxTime</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemintime">CacheSocacheMinTime</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemaxsize">CacheSocacheMaxSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachereadsize">CacheSocacheReadSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachereadtime">CacheSocacheReadTime</a></code></li></ul></td></tr></table>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="sampleconf" id="sampleconf">Exemple de configuration</a></h2>
<div class="example"><h3>Extrait de httpd.conf</h3><pre class="prettyprint lang-config">#
# Exemple de configuration du cache
#
LoadModule cache_module modules/mod_cache.so
&lt;IfModule mod_cache.c&gt;
LoadModule cache_disk_module modules/mod_cache_disk.so
&lt;IfModule mod_cache_disk.c&gt;
CacheRoot c:/cacheroot
CacheEnable disk /
CacheDirLevels 5
CacheDirLength 3
&lt;/IfModule&gt;
# Lorsqu'on sert de mandataire, on ne met pas en cache la liste
# des mises <20> jour de s<>curit<69>
CacheDisable http://security.update.server/update-list/
&lt;/IfModule&gt;</pre>
</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="thunderingherd" id="thunderingherd">Eviter une temp<6D>te de requ<71>te</a></h2>
<p>Lorsqu'une entr<74>e du cache est p<>rim<69>e, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>
soumet une requ<71>te conditionnelle au processus d'arri<72>re-plan, qui est
cens<6E> confirmer la validit<69> de l'entr<74>e du cache, ou dans la n<>gative
envoyer une entr<74>e mise <20> jour.</p>
<p>Un court mais non n<>gligeable laps de temps existe entre le moment
o<> l'entr<74>e du cache est p<>rim<69>e, et le moment o<> elle est mise <20>
jour. Sur un serveur fortement charg<72>, un certain nombre de requ<71>tes
peut arriver pendant ce laps de temps, et provoquer une
<strong>temp<6D>te</strong> de requ<71>tes susceptibles de saturer le
processus d'arri<72>re-plan de mani<6E>re soudaine et impr<70>dictible.</p>
<p>Pour contenir cette temp<6D>te, on peut utiliser la directive
<code class="directive">CacheLock</code> afin de d<>finir un r<>pertoire o<>
seront cr<63><72>s <strong><3E> la vol<6F>e</strong> des verrous pour les URLs.
Ces verrous sont utilis<69>s comme autant d'<strong>indications</strong>
par les autres requ<71>tes, soit pour emp<6D>cher une tentative de mise en
cache (un autre processus est en train de r<>cup<75>rer l'entit<69>), soit
pour indiquer qu'une entr<74>e p<>rim<69>e est en cours de mise <20> jour
(pendant ce temps, c'est le contenu p<>rim<69> qui sera renvoy<6F>).
</p>
<h3>Mise en cache initiale d'une entr<74>e</h3>
<p>Lorsqu'une entit<69> est mise en cache pour la premi<6D>re fois, un
verrou est cr<63><72> pour cette entit<69> jusqu'<27> ce que la r<>ponse ait <20>t<EFBFBD>
enti<74>rement mise en cache. Pendant la dur<75>e de vie du verrou, le
cache va emp<6D>cher une seconde tentative de mise en cache de la m<>me
entit<69>. Bien que cela ne suffise pas <20> contenir la temp<6D>te de
requ<71>tes, toute tentative de mettre en cache la m<>me entit<69>
plusieurs fois simultan<61>ment est stopp<70>e.
</p>
<h3>Mise <20> jour d'une entr<74>e p<>rim<69>e</h3>
<p>Lorsqu'une entr<74>e atteint la limite de sa dur<75>e de vie, et
devient par cons<6E>quent p<>rim<69>e, un verrou est cr<63><72> pour cette entit<69>
jusqu'<27> ce que la r<>ponse ait <20>t<EFBFBD> soit confirm<72>e comme encore
valide, soit remplac<61>e par le processus d'arri<72>re-plan. Pendant la
dur<75>e de vie du verrou, une seconde requ<71>te entrante va provoquer le
renvoi de la donn<6E>e p<>rim<69>e, et la temp<6D>te de requ<71>tes sera
contenue.</p>
<h3>Verrous et en-t<>te Cache-Control: no-cache</h3>
<p>Les verrous ne sont utilis<69>s <strong>qu'<27> titre
indicatif</strong> pour enjoindre le cache <20> <20>tre plus coop<6F>ratif
avec les serveurs d'arri<72>re-plan, et il est possible de passer outre
si n<>cessaire. Si le client envoie une requ<71>te contenant un en-t<>te
Cache-Control imposant un nouveau t<>l<EFBFBD>chargement de l'entit<69>, tout
verrou <20>ventuel sera ignor<6F>, la requ<71>te du client sera honor<6F>e
imm<6D>diatement, et l'entr<74>e du cache mise <20> jour.</p>
<p>Comme m<>canisme de s<>curit<69> suppl<70>mentaire, la dur<75>e de vie
maximale des verrous est configurable. Lorsque cette limite est
atteinte, le verrou est supprim<69> et une autre requ<71>te peut alors en
cr<63>er un nouveau. Cette dur<75>e de vie peut <20>tre d<>finie via la
directive <code class="directive">CacheLockMaxAge</code>, et sa valeur par
d<>faut est de 5 secondes.
</p>
<h3>Exemple de configuration</h3>
<div class="example"><h3>Activation du verrouillage du cache</h3><pre class="prettyprint lang-config">#
# Active le verrouillage du cache
#
&lt;IfModule mod_cache.c&gt;
CacheLock on
CacheLockPath /tmp/mod_cache-lock
CacheLockMaxAge 5
&lt;/IfModule&gt;</pre>
</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="finecontrol" id="finecontrol">Contr<74>le fin via le filtre CACHE</a></h2>
<p>Dans son mode de fonctionnement par d<>faut, le cache s'ex<65>cute sous
la forme d'un gestionnaire rapide, court-circuitant la majorit<69> des
traitements du serveur et fournissant ainsi une mise en cache
poss<73>dant les plus hautes performances disponibles.</p>
<p>Dans ce mode, le cache <strong>s'incruste</strong> devant le
serveur, comme si un mandataire de mise en cache ind<6E>pendant RFC 2616
<20>tait plac<61> devant ce dernier.</p>
<p>Bien que que ce mode offre les meilleures performances, les
administrateurs peuvent souhaiter, dans certaines circonstances,
effectuer des traitements sur la requ<71>te apr<70>s que cette derni<6E>re ait
<20>t<EFBFBD> mise en cache, comme ajouter du contenu personnalis<69> <20> la page
mise en cache, ou appliquer des restrictions d'autorisations au
contenu. Pour y parvenir, l'administrateur sera alors souvent forc<72> de
placer des serveurs mandataires inverses ind<6E>pendants soit derri<72>re,
soit devant le serveur de mise en cache.</p>
<p>Pour r<>soudre ce probl<62>me, la directive <code class="directive"><a href="#cachequickhandler">CacheQuickHandler</a></code> peut <20>tre d<>finie <20>
<strong>off</strong>, afin que le serveur traite toutes les phases
normalement ex<65>cut<75>es par une requ<71>te non mise en cache, y compris les
phases <strong>d'authentification et d'autorisation</strong>.</p>
<p>En outre, l'administrateur peut <20>ventuellement sp<73>cifier le
<strong>point pr<70>cis dans la cha<68>ne de filtrage</strong> o<> devra
intervenir la mise en cache en ajoutant le filtre
<strong>CACHE</strong> <20> la cha<68>ne de filtrage en sortie.</p>
<p>Par exemple, pour mettre en cache le contenu avant d'appliquer une
compression <20> la r<>ponse, placez le filtre <strong>CACHE</strong>
avant le filtre <strong>DEFLATE</strong> comme dans l'exemple suivant
:</p>
<pre class="prettyprint lang-config"># Mise en cache du contenu avant la compression optionnelle
CacheQuickHandler off
AddOutputFilterByType CACHE;DEFLATE text/plain</pre>
<p>Une autre possibilit<69> consiste <20> mettre en cache le contenu avant
l'ajout de contenu personnalis<69> via <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> (ou
tout autre filtre de traitement de contenu). Dans l'exemple suivant,
les mod<6F>les contenant des balises comprises par
<code class="module"><a href="../mod/mod_include.html">mod_include</a></code> sont mis en cache avant d'<27>tre
interpr<70>t<EFBFBD>s :</p>
<pre class="prettyprint lang-config"># Mise en cache du contenu avant l'intervention de mod_include et
# mod_deflate
CacheQuickHandler off
AddOutputFilterByType CACHE;INCLUDES;DEFLATE text/html</pre>
<p>Vous pouvez ins<6E>rer le filtre <strong>CACHE</strong> en tout point
de la cha<68>ne de filtrage. Dans l'exemple suivant, le contenu est mis
en cache apr<70>s avoir <20>t<EFBFBD> interpr<70>t<EFBFBD> par <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>,
mais avant d'<27>tre trait<69> par <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> :</p>
<pre class="prettyprint lang-config"># Mise en cache du contenu entre les interventions de mod_include et
# mod_deflate
CacheQuickHandler off
AddOutputFilterByType INCLUDES;CACHE;DEFLATE text/html</pre>
<div class="warning"><h3>Avertissement :</h3>Si pour une raison
ou pour une autre, le point d'insertion du filtre
<strong>CACHE</strong> dans la cha<68>ne de filtrage est modifi<66>, vous
devez <strong>vider votre cache</strong> pour <20>tre s<>r que les donn<6E>es
servies soient <20> jour. En effet, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> n'est pas
en mesure d'effectuer cette op<6F>ration <20> votre place.</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="status" id="status">Etat du cache et journalisation</a></h2>
<p>Lorsque <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> a d<>cid<69> s'il devait ou non
servir une entit<69> depuis le cache, les raisons pr<70>cises de cette
d<>cision sont enregistr<74>es dans l'environnement du sous-processus
interne <20> la requ<71>te sous la cl<63> <strong>cache-status</strong>.
Cette information peut <20>tre journalis<69>e via la directive <code class="directive"><a href="../mod/mod_log_config.html#logformat">LogFormat</a></code> comme suit :</p>
<pre class="prettyprint lang-config">LogFormat "%{cache-status}e ..."</pre>
<p>En fonction de la d<>cision prise, l'information est aussi <20>crite
dans l'environnement du sous-processus sous une des quatre cl<63>s
suivantes :</p>
<dl>
<dt>cache-hit</dt><dd>Le contenu a <20>t<EFBFBD> servi depuis le cache.</dd>
<dt>cache-revalidate</dt><dd>Le contenu du cache <20>tait p<>rim<69>, a <20>t<EFBFBD>
mis <20> jour avec succ<63>s, puis servi depuis le cache.</dd>
<dt>cache-miss</dt><dd>Le contenu n'<27>tait pas dans le cache et a <20>t<EFBFBD>
servi directement depuis le serveur demand<6E>.</dd>
<dt>cache-invalidate</dt><dd>L'entit<69> du cache est devenue invalide
suite <20> une requ<71>te d'un type autre que GET ou HEAD.</dd>
</dl>
<p>Il est alors possible d'envisager une journalisation conditionnelle
du traitement des requ<71>tes par rapport au cache comme dans l'exemple
suivant :</p>
<pre class="prettyprint lang-config">CustomLog cached-requests.log common env=cache-hit
CustomLog uncached-requests.log common env=cache-miss
CustomLog revalidated-requests.log common env=cache-revalidate
CustomLog invalidated-requests.log common env=cache-invalidate</pre>
<p>Pour les concepteurs de modules, une accroche (hook) nomm<6D>e
<var>cache_status</var> est disponible et permet aux modules de
r<>pondre aux r<>sultats de la v<>rification du cache ci-dessus de mani<6E>re
personnalis<69>e.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="cachedefaultexpire" id="cachedefaultexpire">Directive</a> <a name="CacheDefaultExpire" id="CacheDefaultExpire">CacheDefaultExpire</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>La dur<75>e par d<>faut de mise en cache d'un document
@@ -1156,6 +944,218 @@ marqu
<li><code class="directive"><a href="#cacheignorecachecontrol">CacheIgnoreCacheControl</a></code></li>
<li><code class="directive"><a href="#cachestorenostore">CacheStoreNoStore</a></code></li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="related" id="related">Modules apparent<6E>s et directives</a></h2>
<table class="related"><tr><th>Modules Apparent<6E>s</th><th>Directives Apparent<6E>es</th></tr><tr><td><ul><li><code class="module"><a href="../mod/mod_cache_socache.html">mod_cache_socache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheroot">CacheRoot</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlevels">CacheDirLevels</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlength">CacheDirLength</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheminfilesize">CacheMinFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachemaxfilesize">CacheMaxFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocache">CacheSocache</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemaxtime">CacheSocacheMaxTime</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemintime">CacheSocacheMinTime</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemaxsize">CacheSocacheMaxSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachereadsize">CacheSocacheReadSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachereadtime">CacheSocacheReadTime</a></code></li></ul></td></tr></table>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="sampleconf" id="sampleconf">Exemple de configuration</a></h2>
<div class="example"><h3>Extrait de httpd.conf</h3><pre class="prettyprint lang-config">#
# Exemple de configuration du cache
#
LoadModule cache_module modules/mod_cache.so
&lt;IfModule mod_cache.c&gt;
LoadModule cache_disk_module modules/mod_cache_disk.so
&lt;IfModule mod_cache_disk.c&gt;
CacheRoot c:/cacheroot
CacheEnable disk /
CacheDirLevels 5
CacheDirLength 3
&lt;/IfModule&gt;
# Lorsqu'on sert de mandataire, on ne met pas en cache la liste
# des mises <20> jour de s<>curit<69>
CacheDisable http://security.update.server/update-list/
&lt;/IfModule&gt;</pre>
</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="thunderingherd" id="thunderingherd">Eviter une temp<6D>te de requ<71>te</a></h2>
<p>Lorsqu'une entr<74>e du cache est p<>rim<69>e, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>
soumet une requ<71>te conditionnelle au processus d'arri<72>re-plan, qui est
cens<6E> confirmer la validit<69> de l'entr<74>e du cache, ou dans la n<>gative
envoyer une entr<74>e mise <20> jour.</p>
<p>Un court mais non n<>gligeable laps de temps existe entre le moment
o<> l'entr<74>e du cache est p<>rim<69>e, et le moment o<> elle est mise <20>
jour. Sur un serveur fortement charg<72>, un certain nombre de requ<71>tes
peut arriver pendant ce laps de temps, et provoquer une
<strong>temp<6D>te</strong> de requ<71>tes susceptibles de saturer le
processus d'arri<72>re-plan de mani<6E>re soudaine et impr<70>dictible.</p>
<p>Pour contenir cette temp<6D>te, on peut utiliser la directive
<code class="directive">CacheLock</code> afin de d<>finir un r<>pertoire o<>
seront cr<63><72>s <strong><3E> la vol<6F>e</strong> des verrous pour les URLs.
Ces verrous sont utilis<69>s comme autant d'<strong>indications</strong>
par les autres requ<71>tes, soit pour emp<6D>cher une tentative de mise en
cache (un autre processus est en train de r<>cup<75>rer l'entit<69>), soit
pour indiquer qu'une entr<74>e p<>rim<69>e est en cours de mise <20> jour
(pendant ce temps, c'est le contenu p<>rim<69> qui sera renvoy<6F>).
</p>
<h3>Mise en cache initiale d'une entr<74>e</h3>
<p>Lorsqu'une entit<69> est mise en cache pour la premi<6D>re fois, un
verrou est cr<63><72> pour cette entit<69> jusqu'<27> ce que la r<>ponse ait <20>t<EFBFBD>
enti<74>rement mise en cache. Pendant la dur<75>e de vie du verrou, le
cache va emp<6D>cher une seconde tentative de mise en cache de la m<>me
entit<69>. Bien que cela ne suffise pas <20> contenir la temp<6D>te de
requ<71>tes, toute tentative de mettre en cache la m<>me entit<69>
plusieurs fois simultan<61>ment est stopp<70>e.
</p>
<h3>Mise <20> jour d'une entr<74>e p<>rim<69>e</h3>
<p>Lorsqu'une entr<74>e atteint la limite de sa dur<75>e de vie, et
devient par cons<6E>quent p<>rim<69>e, un verrou est cr<63><72> pour cette entit<69>
jusqu'<27> ce que la r<>ponse ait <20>t<EFBFBD> soit confirm<72>e comme encore
valide, soit remplac<61>e par le processus d'arri<72>re-plan. Pendant la
dur<75>e de vie du verrou, une seconde requ<71>te entrante va provoquer le
renvoi de la donn<6E>e p<>rim<69>e, et la temp<6D>te de requ<71>tes sera
contenue.</p>
<h3>Verrous et en-t<>te Cache-Control: no-cache</h3>
<p>Les verrous ne sont utilis<69>s <strong>qu'<27> titre
indicatif</strong> pour enjoindre le cache <20> <20>tre plus coop<6F>ratif
avec les serveurs d'arri<72>re-plan, et il est possible de passer outre
si n<>cessaire. Si le client envoie une requ<71>te contenant un en-t<>te
Cache-Control imposant un nouveau t<>l<EFBFBD>chargement de l'entit<69>, tout
verrou <20>ventuel sera ignor<6F>, la requ<71>te du client sera honor<6F>e
imm<6D>diatement, et l'entr<74>e du cache mise <20> jour.</p>
<p>Comme m<>canisme de s<>curit<69> suppl<70>mentaire, la dur<75>e de vie
maximale des verrous est configurable. Lorsque cette limite est
atteinte, le verrou est supprim<69> et une autre requ<71>te peut alors en
cr<63>er un nouveau. Cette dur<75>e de vie peut <20>tre d<>finie via la
directive <code class="directive">CacheLockMaxAge</code>, et sa valeur par
d<>faut est de 5 secondes.
</p>
<h3>Exemple de configuration</h3>
<div class="example"><h3>Activation du verrouillage du cache</h3><pre class="prettyprint lang-config">#
# Active le verrouillage du cache
#
&lt;IfModule mod_cache.c&gt;
CacheLock on
CacheLockPath /tmp/mod_cache-lock
CacheLockMaxAge 5
&lt;/IfModule&gt;</pre>
</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="finecontrol" id="finecontrol">Contr<74>le fin via le filtre CACHE</a></h2>
<p>Dans son mode de fonctionnement par d<>faut, le cache s'ex<65>cute sous
la forme d'un gestionnaire rapide, court-circuitant la majorit<69> des
traitements du serveur et fournissant ainsi une mise en cache
poss<73>dant les plus hautes performances disponibles.</p>
<p>Dans ce mode, le cache <strong>s'incruste</strong> devant le
serveur, comme si un mandataire de mise en cache ind<6E>pendant RFC 2616
<20>tait plac<61> devant ce dernier.</p>
<p>Bien que que ce mode offre les meilleures performances, les
administrateurs peuvent souhaiter, dans certaines circonstances,
effectuer des traitements sur la requ<71>te apr<70>s que cette derni<6E>re ait
<20>t<EFBFBD> mise en cache, comme ajouter du contenu personnalis<69> <20> la page
mise en cache, ou appliquer des restrictions d'autorisations au
contenu. Pour y parvenir, l'administrateur sera alors souvent forc<72> de
placer des serveurs mandataires inverses ind<6E>pendants soit derri<72>re,
soit devant le serveur de mise en cache.</p>
<p>Pour r<>soudre ce probl<62>me, la directive <code class="directive"><a href="#cachequickhandler">CacheQuickHandler</a></code> peut <20>tre d<>finie <20>
<strong>off</strong>, afin que le serveur traite toutes les phases
normalement ex<65>cut<75>es par une requ<71>te non mise en cache, y compris les
phases <strong>d'authentification et d'autorisation</strong>.</p>
<p>En outre, l'administrateur peut <20>ventuellement sp<73>cifier le
<strong>point pr<70>cis dans la cha<68>ne de filtrage</strong> o<> devra
intervenir la mise en cache en ajoutant le filtre
<strong>CACHE</strong> <20> la cha<68>ne de filtrage en sortie.</p>
<p>Par exemple, pour mettre en cache le contenu avant d'appliquer une
compression <20> la r<>ponse, placez le filtre <strong>CACHE</strong>
avant le filtre <strong>DEFLATE</strong> comme dans l'exemple suivant
:</p>
<pre class="prettyprint lang-config"># Mise en cache du contenu avant la compression optionnelle
CacheQuickHandler off
AddOutputFilterByType CACHE;DEFLATE text/plain</pre>
<p>Une autre possibilit<69> consiste <20> mettre en cache le contenu avant
l'ajout de contenu personnalis<69> via <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> (ou
tout autre filtre de traitement de contenu). Dans l'exemple suivant,
les mod<6F>les contenant des balises comprises par
<code class="module"><a href="../mod/mod_include.html">mod_include</a></code> sont mis en cache avant d'<27>tre
interpr<70>t<EFBFBD>s :</p>
<pre class="prettyprint lang-config"># Mise en cache du contenu avant l'intervention de mod_include et
# mod_deflate
CacheQuickHandler off
AddOutputFilterByType CACHE;INCLUDES;DEFLATE text/html</pre>
<p>Vous pouvez ins<6E>rer le filtre <strong>CACHE</strong> en tout point
de la cha<68>ne de filtrage. Dans l'exemple suivant, le contenu est mis
en cache apr<70>s avoir <20>t<EFBFBD> interpr<70>t<EFBFBD> par <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>,
mais avant d'<27>tre trait<69> par <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> :</p>
<pre class="prettyprint lang-config"># Mise en cache du contenu entre les interventions de mod_include et
# mod_deflate
CacheQuickHandler off
AddOutputFilterByType INCLUDES;CACHE;DEFLATE text/html</pre>
<div class="warning"><h3>Avertissement :</h3>Si pour une raison
ou pour une autre, le point d'insertion du filtre
<strong>CACHE</strong> dans la cha<68>ne de filtrage est modifi<66>, vous
devez <strong>vider votre cache</strong> pour <20>tre s<>r que les donn<6E>es
servies soient <20> jour. En effet, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> n'est pas
en mesure d'effectuer cette op<6F>ration <20> votre place.</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="status" id="status">Etat du cache et journalisation</a></h2>
<p>Lorsque <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> a d<>cid<69> s'il devait ou non
servir une entit<69> depuis le cache, les raisons pr<70>cises de cette
d<>cision sont enregistr<74>es dans l'environnement du sous-processus
interne <20> la requ<71>te sous la cl<63> <strong>cache-status</strong>.
Cette information peut <20>tre journalis<69>e via la directive <code class="directive"><a href="../mod/mod_log_config.html#logformat">LogFormat</a></code> comme suit :</p>
<pre class="prettyprint lang-config">LogFormat "%{cache-status}e ..."</pre>
<p>En fonction de la d<>cision prise, l'information est aussi <20>crite
dans l'environnement du sous-processus sous une des quatre cl<63>s
suivantes :</p>
<dl>
<dt>cache-hit</dt><dd>Le contenu a <20>t<EFBFBD> servi depuis le cache.</dd>
<dt>cache-revalidate</dt><dd>Le contenu du cache <20>tait p<>rim<69>, a <20>t<EFBFBD>
mis <20> jour avec succ<63>s, puis servi depuis le cache.</dd>
<dt>cache-miss</dt><dd>Le contenu n'<27>tait pas dans le cache et a <20>t<EFBFBD>
servi directement depuis le serveur demand<6E>.</dd>
<dt>cache-invalidate</dt><dd>L'entit<69> du cache est devenue invalide
suite <20> une requ<71>te d'un type autre que GET ou HEAD.</dd>
</dl>
<p>Il est alors possible d'envisager une journalisation conditionnelle
du traitement des requ<71>tes par rapport au cache comme dans l'exemple
suivant :</p>
<pre class="prettyprint lang-config">CustomLog cached-requests.log common env=cache-hit
CustomLog uncached-requests.log common env=cache-miss
CustomLog revalidated-requests.log common env=cache-revalidate
CustomLog invalidated-requests.log common env=cache-invalidate</pre>
<p>Pour les concepteurs de modules, une accroche (hook) nomm<6D>e
<var>cache_status</var> est disponible et permet aux modules de
r<>pondre aux r<>sultats de la v<>rification du cache ci-dessus de mani<6E>re
personnalis<69>e.</p>
</div>
</div>
<div class="bottomlang">

View File

@@ -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 />
&lt;IfModule mod_cache.c&gt;<br />
<span class="indent">
#LoadModule cache_disk_module modules/mod_cache_disk.so<br />
# If you want to use mod_cache_disk instead of mod_mem_cache,<br />
# uncomment the line above and comment out the LoadModule line below.<br />
&lt;IfModule mod_cache_disk.c&gt;<br />
<span class="indent">
CacheRoot c:/cacheroot<br />
CacheEnable disk /<br />
CacheDirLevels 5<br />
CacheDirLength 3<br />
</span>
&lt;/IfModule&gt; <br />
<br />
LoadModule mem_cache_module modules/mod_mem_cache.so<br />
&lt;IfModule mod_mem_cache.c&gt;<br />
<span class="indent">
CacheEnable mem /<br />
MCacheSize 4096<br />
MCacheMaxObjectCount 100<br />
MCacheMinObjectSize 1<br />
MCacheMaxObjectSize 2048<br />
</span>
&lt;/IfModule&gt;<br />
<br />
# When acting as a proxy, don't cache the list of security updates<br />
CacheDisable http://security.update.server/update-list/<br />
</span>
&lt;/IfModule&gt;
</code></p></div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="CacheDefaultExpire" id="CacheDefaultExpire">CacheDefaultExpire</a> <a name="cachedefaultexpire" id="cachedefaultexpire">ディレクティブ</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>期日が指定されていないときにドキュメントをキャッシュするデフォルトの期間</td></tr>
@@ -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 />
&lt;IfModule mod_cache.c&gt;<br />
<span class="indent">
#LoadModule cache_disk_module modules/mod_cache_disk.so<br />
# If you want to use mod_cache_disk instead of mod_mem_cache,<br />
# uncomment the line above and comment out the LoadModule line below.<br />
&lt;IfModule mod_cache_disk.c&gt;<br />
<span class="indent">
CacheRoot c:/cacheroot<br />
CacheEnable disk /<br />
CacheDirLevels 5<br />
CacheDirLength 3<br />
</span>
&lt;/IfModule&gt; <br />
<br />
LoadModule mem_cache_module modules/mod_mem_cache.so<br />
&lt;IfModule mod_mem_cache.c&gt;<br />
<span class="indent">
CacheEnable mem /<br />
MCacheSize 4096<br />
MCacheMaxObjectCount 100<br />
MCacheMinObjectSize 1<br />
MCacheMaxObjectSize 2048<br />
</span>
&lt;/IfModule&gt;<br />
<br />
# When acting as a proxy, don't cache the list of security updates<br />
CacheDisable http://security.update.server/update-list/<br />
</span>
&lt;/IfModule&gt;
</code></p></div>
</div>
</div>
<div class="bottomlang">
<p><span>翻訳済み言語: </span><a href="../en/mod/mod_cache.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -95,46 +95,6 @@
<li><img alt="" src="../images/down.gif" /> <a href="#sampleconf"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD></a></li>
</ul><ul class="seealso"><li><a href="#comments_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"><3E><><EFBFBD>õ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>þ<EFBFBD></a></h2>
<table class="related"><tr><th><3E><><EFBFBD>õ<EFBFBD> <20><><EFBFBD><EFBFBD></th><th><3E><><EFBFBD>õ<EFBFBD> <20><><EFBFBD>þ<EFBFBD></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"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD></a></h2>
<div class="example"><h3>Sample httpd.conf</h3><p><code>
#<br />
# <20><><EFBFBD><EFBFBD> ij<><C4B3> <20><><EFBFBD><EFBFBD><br />
#<br />
LoadModule cache_module modules/mod_cache.so<br />
<br />
&lt;IfModule mod_cache.c&gt;<br />
<span class="indent">
#LoadModule cache_disk_module modules/mod_cache_disk.so<br />
&lt;IfModule mod_cache_disk.c&gt;<br />
<span class="indent">
CacheRoot c:/cacheroot<br />
CacheSize 256<br />
CacheEnable disk /<br />
CacheDirLevels 5<br />
CacheDirLength 3<br />
</span>
&lt;/IfModule&gt; <br />
<br />
LoadModule mem_cache_module modules/mod_mem_cache.so<br />
&lt;IfModule mod_mem_cache.c&gt;<br />
<span class="indent">
CacheEnable mem /<br />
MCacheSize 4096<br />
MCacheMaxObjectCount 100<br />
MCacheMinObjectSize 1<br />
MCacheMaxObjectSize 2048<br />
</span>
&lt;/IfModule&gt;<br />
</span>
&lt;/IfModule&gt;
</code></p></div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="CacheDefaultExpire" id="CacheDefaultExpire">CacheDefaultExpire</a> <a name="cachedefaultexpire" id="cachedefaultexpire"><3E><><EFBFBD>þ<EFBFBD></a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description"><3E><><EFBFBD><EFBFBD>:</a></th><td><3E><><EFBFBD><EFBFBD><EFBFBD>ð<EFBFBD><C3B0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> <20><20>Ⱓ.</td></tr>
@@ -495,6 +455,46 @@
<tr><th><a href="directive-dict.html#Module"><3E><><EFBFBD><EFBFBD>:</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"><3E><><EFBFBD>õ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>þ<EFBFBD></a></h2>
<table class="related"><tr><th><3E><><EFBFBD>õ<EFBFBD> <20><><EFBFBD><EFBFBD></th><th><3E><><EFBFBD>õ<EFBFBD> <20><><EFBFBD>þ<EFBFBD></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"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD></a></h2>
<div class="example"><h3>Sample httpd.conf</h3><p><code>
#<br />
# <20><><EFBFBD><EFBFBD> ij<><C4B3> <20><><EFBFBD><EFBFBD><br />
#<br />
LoadModule cache_module modules/mod_cache.so<br />
<br />
&lt;IfModule mod_cache.c&gt;<br />
<span class="indent">
#LoadModule cache_disk_module modules/mod_cache_disk.so<br />
&lt;IfModule mod_cache_disk.c&gt;<br />
<span class="indent">
CacheRoot c:/cacheroot<br />
CacheSize 256<br />
CacheEnable disk /<br />
CacheDirLevels 5<br />
CacheDirLength 3<br />
</span>
&lt;/IfModule&gt; <br />
<br />
LoadModule mem_cache_module modules/mod_mem_cache.so<br />
&lt;IfModule mod_mem_cache.c&gt;<br />
<span class="indent">
CacheEnable mem /<br />
MCacheSize 4096<br />
MCacheMaxObjectCount 100<br />
MCacheMinObjectSize 1<br />
MCacheMaxObjectSize 2048<br />
</span>
&lt;/IfModule&gt;<br />
</span>
&lt;/IfModule&gt;
</code></p></div>
</div>
</div>
<div class="bottomlang">
<p><span><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: </span><a href="../en/mod/mod_cache.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -88,7 +88,6 @@
<li><code class="module"><a href="../mod/mod_cache_socache.html">mod_cache_socache</a></code></li>
<li><a href="../caching.html">Caching Guide</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="CacheDirLength" id="CacheDirLength">CacheDirLength</a> <a name="cachedirlength" id="cachedirlength">Directive</a></h2>
<table class="directive">
@@ -257,6 +256,7 @@ stored</td></tr>
</div>
</div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/mod/mod_cache_disk.html" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -92,7 +92,6 @@ cache HTTP.</td></tr>
<li><code class="module"><a href="../mod/mod_cache_socache.html">mod_cache_socache</a></code></li>
<li><a href="../caching.html">Guide de la mise en cache</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="cachedirlength" id="cachedirlength">Directive</a> <a name="CacheDirLength" id="CacheDirLength">CacheDirLength</a></h2>
<table class="directive">
@@ -275,6 +274,7 @@ seront stock
</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_cache_disk.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -65,7 +65,6 @@
<li><img alt="" src="../images/down.gif" /> <a href="#cacheroot">CacheRoot</a></li>
</ul>
<ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="CacheDirLength" id="CacheDirLength">CacheDirLength</a> <a name="cachedirlength" id="cachedirlength">ディレクティブ</a></h2>
<table class="directive">
@@ -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">&nbsp;en&nbsp;</a> |

View File

@@ -64,7 +64,6 @@
<li><img alt="" src="../images/down.gif" /> <a href="#cacheroot">CacheRoot</a></li>
</ul>
<ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="CacheDirLength" id="CacheDirLength">CacheDirLength</a> <a name="cachedirlength" id="cachedirlength"><3E><><EFBFBD>þ<EFBFBD></a></h2>
<table class="directive">
@@ -191,6 +190,7 @@
</code></p></div>
</div>
</div>
<div class="bottomlang">
<p><span><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: </span><a href="../en/mod/mod_cache_disk.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -83,7 +83,6 @@ CacheSocacheMaxSize 102400
<li><code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code></li>
<li><a href="../caching.html">Caching Guide</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="CacheSocache" id="CacheSocache">CacheSocache</a> <a name="cachesocache" id="cachesocache">Directive</a></h2>
<table class="directive">
@@ -233,6 +232,7 @@ cache</td></tr>
</div>
</div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/mod/mod_cache_socache.html" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -84,7 +84,6 @@ CacheSocacheMaxSize 102400
<li><code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code></li>
<li><a href="../caching.html">Guide de la mise en cache</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="cachesocache" id="cachesocache">Directive</a> <a name="CacheSocache" id="CacheSocache">CacheSocache</a></h2>
<table class="directive">
@@ -246,6 +245,7 @@ Apache</td></tr>
</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_cache_socache.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -56,7 +56,6 @@
<li><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code></li>
<li><code class="module"><a href="../mod/mod_asis.html">mod_asis</a></code></li>
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="MetaDir" id="MetaDir">MetaDir</a> <a name="metadir" id="metadir">Directive</a></h2>
<table class="directive">
@@ -123,6 +122,7 @@ meta information</td></tr>
</div>
</div>
</div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/mod/mod_cern_meta.html" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -58,7 +58,6 @@ CERN</td></tr>
<li><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code></li>
<li><code class="module"><a href="../mod/mod_asis.html">mod_asis</a></code></li>
</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="metadir" id="metadir">Directive</a> <a name="MetaDir" id="MetaDir">MetaDir</a></h2>
<table class="directive">
@@ -128,6 +127,7 @@ style du CERN</td></tr>
</div>
</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_cern_meta.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -56,7 +56,6 @@
<li><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code></li>
<li><code class="module"><a href="../mod/mod_asis.html">mod_asis</a></code></li>
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="MetaDir" id="MetaDir">MetaDir</a> <a name="metadir" id="metadir"><3E><><EFBFBD>þ<EFBFBD></a></h2>
<table class="directive">
@@ -116,6 +115,7 @@
</code></p></div>
</div>
</div>
<div class="bottomlang">
<p><span><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: </span><a href="../en/mod/mod_cern_meta.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -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
@@ -161,78 +233,6 @@
<p>(The %stdout and %stderr parts may be missing if the script did
not output anything on standard output or standard error).</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="ScriptLog" id="ScriptLog">ScriptLog</a> <a name="scriptlog" id="scriptlog">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Location of the CGI script error logfile</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ScriptLog <var>file-path</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
</table>
<p>The <code class="directive">ScriptLog</code> directive sets the CGI
script error logfile. If no <code class="directive">ScriptLog</code> is given,
no error log is created. If given, any CGI errors are logged into the
filename given as argument. If this is a relative file or path it is
taken relative to the <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.
</p>
<div class="example"><h3>Example</h3><pre class="prettyprint lang-config">ScriptLog logs/cgi_log</pre>
</div>
<p>This log will be opened as the user the child processes run
as, <em>i.e.</em> the user specified in the main <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code> directive. This means that
either the directory the script log is in needs to be writable
by that user or the file needs to be manually created and set
to be writable by that user. If you place the script log in
your main logs directory, do <strong>NOT</strong> change the
directory permissions to make it writable by the user the child
processes run as.</p>
<p>Note that script logging is meant to be a debugging feature
when writing CGI scripts, and is not meant to be activated
continuously on running servers. It is not optimized for speed
or efficiency, and may have security problems if used in a
manner other than that for which it was designed.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="ScriptLogBuffer" id="ScriptLogBuffer">ScriptLogBuffer</a> <a name="scriptlogbuffer" id="scriptlogbuffer">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maximum amount of PUT or POST requests that will be recorded
in the scriptlog</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ScriptLogBuffer <var>bytes</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ScriptLogBuffer 1024</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
</table>
<p>The size of any PUT or POST entity body that is logged to
the file is limited, to prevent the log file growing too big
too quickly if large bodies are being received. By default, up
to 1024 bytes are logged, but this can be changed with this
directive.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="ScriptLogLength" id="ScriptLogLength">ScriptLogLength</a> <a name="scriptloglength" id="scriptloglength">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Size limit of the CGI script logfile</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ScriptLogLength <var>bytes</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ScriptLogLength 10385760</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
</table>
<p><code class="directive">ScriptLogLength</code> can be used to limit the
size of the CGI script logfile. Since the logfile logs a lot of
information per CGI error (all request headers, all script output)
it can grow to be a big file. To prevent problems due to unbounded
growth, this directive can be used to set an maximum file-size for
the CGI logfile. If the file exceeds this size, no more
information will be written to it.</p>
</div>
</div>
<div class="bottomlang">

View File

@@ -78,6 +78,88 @@ utilisateurs diff
CGI</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="scriptlog" id="scriptlog">Directive</a> <a name="ScriptLog" id="ScriptLog">ScriptLog</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Chemin du fichier journal des erreurs du script
CGI</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ScriptLog <var>chemin fichier</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
</table>
<p>La directive <code class="directive">ScriptLog</code> d<>finit
le chemin du fichier journal des erreurs du script CGI. Si cette
directive n'est pas d<>finie, aucune journalisation des erreurs n'est
effectu<74>e. Si elle est d<>finie, toute erreur CGI sera enregistr<74>e
dans le fichier dont le nom est fourni en argument. S'il s'agit d'un
chemin de fichier relatif, il est consid<69>r<EFBFBD> par rapport au
r<>pertoire d<>fini par la directive <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.
</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ScriptLog logs/cgi_log</pre>
</div>
<p>Ce journal sera ouvert par l'utilisateur sous lequel les
processus enfants s'ex<65>cutent, c'est <20> dire l'utilisateur sp<73>cifi<66>
par la directive du serveur <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code>. Ceci implique que soit le
r<>pertoire dans lequel se trouve le journal doit <20>tre accessible en
<20>criture pour cet utilisateur, soit le fichier doit <20>tre cr<63><72>
manuellement et accessible en <20>criture pour cet utilisateur. Si vous
placez le journal du script dans votre r<>pertoire principal des
journaux, ne modifiez <strong>PAS</strong> les permissions de ce
dernier afin de le le rendre accessible en <20>criture par
l'utilisateur sous lequel les processus enfants s'ex<65>cutent.</p>
<p>Notez que l'on ne doit activer la journalisation des scripts
qu'<27> des fins de d<>bogage lors de l'<27>criture de scripts CGI, et non
de mani<6E>re permanente sur un serveur en production. Elle n'est pas
optimis<69>e en ce qui concerne la vitesse et l'efficacit<69>, et peut
pr<70>senter des probl<62>mes de s<>curit<69> si on l'utilise dans un cadre
autre que celui pour lequel elle a <20>t<EFBFBD> con<6F>ue.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="scriptlogbuffer" id="scriptlogbuffer">Directive</a> <a name="ScriptLogBuffer" id="ScriptLogBuffer">ScriptLogBuffer</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille maximale des requ<71>tes PUT ou POST qui seront
enregistr<EFBFBD>es dans le journal du script</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ScriptLogBuffer <var>octets</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>ScriptLogBuffer 1024</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
</table>
<p>Cette directive limite la taille du corps de toute
entit<69> PUT ou POST qui sera enregistr<74>e dans le journal, afin
de pr<70>venir une croissance trop importante et trop rapide du fichier
journal due <20> la r<>ception de corps de requ<71>te de grandes tailles.
Cette directive modifie cette taille maximale, dont la
valeur par d<>faut est de 1024 octets.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="scriptloglength" id="scriptloglength">Directive</a> <a name="ScriptLogLength" id="ScriptLogLength">ScriptLogLength</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille maximale du fichier journal des scripts
CGI</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ScriptLogLength <var>octets</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>ScriptLogLength 10385760</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
</table>
<p>La directive <code class="directive">ScriptLogLength</code>
d<>finit la taille maximale du fichier journal des scripts CGI. Comme
le fichier journal accumule une grande quantit<69> d'informations par
erreur CGI (tous les en-t<>tes de la requ<71>te, toutes les sorties du
script), il peut vite atteindre une grande taille. En limitant la
taille du fichier, cette directive permet d'<27>viter les probl<62>mes que
causerait sa croissance sans limites. Lorsque le fichier a atteint
cette taille maximale, plus aucune information n'y est
enregistr<74>e.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="env" id="env">Les variables d'environnement CGI</a></h2>
<p>Le serveur va d<>finir les variables d'environnement CGI comme
@@ -170,88 +252,6 @@ CGI</a></li>
n'a rien envoy<6F> sur la sortie standard ou la sortie
d'erreurs).</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="scriptlog" id="scriptlog">Directive</a> <a name="ScriptLog" id="ScriptLog">ScriptLog</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Chemin du fichier journal des erreurs du script
CGI</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ScriptLog <var>chemin fichier</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
</table>
<p>La directive <code class="directive">ScriptLog</code> d<>finit
le chemin du fichier journal des erreurs du script CGI. Si cette
directive n'est pas d<>finie, aucune journalisation des erreurs n'est
effectu<74>e. Si elle est d<>finie, toute erreur CGI sera enregistr<74>e
dans le fichier dont le nom est fourni en argument. S'il s'agit d'un
chemin de fichier relatif, il est consid<69>r<EFBFBD> par rapport au
r<>pertoire d<>fini par la directive <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.
</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ScriptLog logs/cgi_log</pre>
</div>
<p>Ce journal sera ouvert par l'utilisateur sous lequel les
processus enfants s'ex<65>cutent, c'est <20> dire l'utilisateur sp<73>cifi<66>
par la directive du serveur <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code>. Ceci implique que soit le
r<>pertoire dans lequel se trouve le journal doit <20>tre accessible en
<20>criture pour cet utilisateur, soit le fichier doit <20>tre cr<63><72>
manuellement et accessible en <20>criture pour cet utilisateur. Si vous
placez le journal du script dans votre r<>pertoire principal des
journaux, ne modifiez <strong>PAS</strong> les permissions de ce
dernier afin de le le rendre accessible en <20>criture par
l'utilisateur sous lequel les processus enfants s'ex<65>cutent.</p>
<p>Notez que l'on ne doit activer la journalisation des scripts
qu'<27> des fins de d<>bogage lors de l'<27>criture de scripts CGI, et non
de mani<6E>re permanente sur un serveur en production. Elle n'est pas
optimis<69>e en ce qui concerne la vitesse et l'efficacit<69>, et peut
pr<70>senter des probl<62>mes de s<>curit<69> si on l'utilise dans un cadre
autre que celui pour lequel elle a <20>t<EFBFBD> con<6F>ue.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="scriptlogbuffer" id="scriptlogbuffer">Directive</a> <a name="ScriptLogBuffer" id="ScriptLogBuffer">ScriptLogBuffer</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille maximale des requ<71>tes PUT ou POST qui seront
enregistr<EFBFBD>es dans le journal du script</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ScriptLogBuffer <var>octets</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>ScriptLogBuffer 1024</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
</table>
<p>Cette directive limite la taille du corps de toute
entit<69> PUT ou POST qui sera enregistr<74>e dans le journal, afin
de pr<70>venir une croissance trop importante et trop rapide du fichier
journal due <20> la r<>ception de corps de requ<71>te de grandes tailles.
Cette directive modifie cette taille maximale, dont la
valeur par d<>faut est de 1024 octets.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="scriptloglength" id="scriptloglength">Directive</a> <a name="ScriptLogLength" id="ScriptLogLength">ScriptLogLength</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille maximale du fichier journal des scripts
CGI</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ScriptLogLength <var>octets</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>ScriptLogLength 10385760</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
</table>
<p>La directive <code class="directive">ScriptLogLength</code>
d<>finit la taille maximale du fichier journal des scripts CGI. Comme
le fichier journal accumule une grande quantit<69> d'informations par
erreur CGI (tous les en-t<>tes de la requ<71>te, toutes les sorties du
script), il peut vite atteindre une grande taille. En limitant la
taille du fichier, cette directive permet d'<27>viter les probl<62>mes que
causerait sa croissance sans limites. Lorsque le fichier a atteint
cette taille maximale, plus aucune information n'y est
enregistr<74>e.</p>
</div>
</div>
<div class="bottomlang">

View File

@@ -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
@@ -164,81 +239,6 @@
<p>(スクリプトが標準出力や標準エラーに何も出力しなかった場合は、
%stdout や %stderr はありません)。</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="ScriptLog" id="ScriptLog">ScriptLog</a> <a name="scriptlog" id="scriptlog">ディレクティブ</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>CGI スクリプトのエラーログファイルの場所</td></tr>
<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>ScriptLog <var>file-path</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
</table>
<p><code class="directive">ScriptLog</code> ディレクティブは CGI スクリプトの
エラーログファイルを設定します。<code class="directive">ScriptLog</code> が
設定されていないときは、
エラーログは作成されません。設定されているときは、CGI
のエラーはすべて引数として与えられているファイル名にログされます。
相対パスで指定されているときは、
<code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>からの相対パスとして
扱われます。</p>
<div class="example"><h3>例</h3><pre class="prettyprint lang-config">ScriptLog logs/cgi_log</pre>
</div>
<p>このログは子プロセスが実行されているユーザとしてオープンされます。
<em>すなわち</em>、<code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code> ディレクティブで指定された
ユーザです。これは、スクリプトログが書かれるディレクトリがそのユーザで
書き込み可能か、スクリプトファイルが手動で作成され、そのユーザで
書き込み可能になっている必要があるということです。スクリプトログを
アクセスログなどのためのログディレクトリに書かれるようにしたときは、
そのディレクトリを子プロセスを実行しているユーザの権限で
書き込み可能には<strong>しない</strong>ようにしてください。</p>
<p>スクリプトのログ収集は CGI スクリプトを書くときの
デバッグ用の機能として意図されていて、通常のサーバで
常に使用されるようには意図されていないということに注意してください。
速度や効率は最適化されておらず、設計された以外の方法で使用されると
セキュリティの問題があるかもしれません。</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="ScriptLogBuffer" id="ScriptLogBuffer">ScriptLogBuffer</a> <a name="scriptlogbuffer" id="scriptlogbuffer">ディレクティブ</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>スクリプトログに記録される PUT や POST リクエストの内容の上限</td></tr>
<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>ScriptLogBuffer <em>bytes</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>ScriptLogBuffer 1024</code></td></tr>
<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
</table>
<p>大きな本体を受け取ったときにログファイルがすぐに大きくなりすぎる
問題を避けるために、ファイルにログ収集される PUT と POST
の本体の大きさは制限されています。デフォルトでは、1024
バイトまでがログ収集されますが、
このディレクティブはそれを変更することができます。
</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="ScriptLogLength" id="ScriptLogLength">ScriptLogLength</a> <a name="scriptloglength" id="scriptloglength">ディレクティブ</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>CGI スクリプトのログファイルの大きさの上限</td></tr>
<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>ScriptLogLength <var>bytes</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>ScriptLogLength 10385760</code></td></tr>
<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
</table>
<p><code class="directive">ScriptLogLength</code> は CGI スクリプトのログファイル
の大きさを制限するために使用することができます。ログファイルは
CGI のエラー毎に大量の情報 (リクエストのすべてのヘッダ、
すべての出力)をログしますので、すぐに大きなファイルになります。
この大きさの制限がないことによる問題を防ぐために、
このディレクティブを使って CGI のログファイルの
最大のファイルサイズを設定することができます。
ファイルがこの大きさを超えた場合は、それ以上は書き込まれません。</p>
</div>
</div>
<div class="bottomlang">

View File

@@ -78,6 +78,75 @@
<li><a href="http://hoohoo.ncsa.uiuc.edu/cgi/">CGI ǥ<><C7A5></a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></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"><3E><><EFBFBD>þ<EFBFBD></a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description"><3E><><EFBFBD><EFBFBD>:</a></th><td>CGI <20><>ũ<EFBFBD><C5A9>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ġ</td></tr>
<tr><th><a href="directive-dict.html#Syntax"><3E><><EFBFBD><EFBFBD>:</a></th><td><code>ScriptLog <var>file-path</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:</a></th><td><3E>ּ<EFBFBD><D6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3>Ʈ</td></tr>
<tr><th><a href="directive-dict.html#Status"><3E><><EFBFBD><EFBFBD>:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module"><3E><><EFBFBD><EFBFBD>:</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> <20><><EFBFBD>þ<EFBFBD><C3BE><EFBFBD> CGI <20><>ũ<EFBFBD><C5A9>Ʈ
<20><><EFBFBD><EFBFBD><EFBFBD>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>. <code class="directive">ScriptLog</code><3E><>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>α׸<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ´<CAB4>. <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> <20>ƱԸ<C6B1>Ʈ<EFBFBD><C6AE>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ͽ<EFBFBD> CGI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>θ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD>
<code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code><3E><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>η<EFBFBD>
<20>޾Ƶ<DEBE><C6B5>δ<EFBFBD>.
</p>
<div class="example"><h3><3E><><EFBFBD><EFBFBD></h3><p><code>
ScriptLog logs/cgi_log
</code></p></div>
<p><3E>ڽ<EFBFBD> <20><><EFBFBD>μ<EFBFBD><CEBC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <em><3E><></em> <code class="directive"><a href="../mod/mpm_common.html#user">User</a></code> <20><><EFBFBD>þ<EFBFBD><C3BE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>α׸<CEB1> <20><><EFBFBD><EFBFBD>. <20>׷<EFBFBD><D7B7><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ <20>αװ<CEB1>
<20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4B8AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD><D6B4><EFBFBD>, <20><><EFBFBD><EFBFBD> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
<20><> <20><><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Ѵ<EFBFBD>. <20><>ũ<EFBFBD><C5A9>Ʈ <20>α׸<CEB1> <20><> <20>α<EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4B8AE> <20>дٸ<D0B4> <20>ڽ<EFBFBD> <20><><EFBFBD>μ<EFBFBD><CEBC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <strong><3E><><EFBFBD><EFBFBD></strong>.</p>
<p><3E><>ũ<EFBFBD><C5A9>Ʈ <20>α״<CEB1> CGI <20><>ũ<EFBFBD><C5A9>Ʈ<EFBFBD><C6AE> <20>ۼ<EFBFBD><DBBC>Ҷ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
<20><EFBFBD><EBB5B5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ƴ<EFBFBD><C6B4><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD>. <20>ӵ<EFBFBD><D3B5><EFBFBD> ȿ<><C8BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9BFA1> <20><><EFBFBD><EFBFBD>ȭ<EFBFBD><C8AD> <20>ȵ<EFBFBD><C8B5>ְ<EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>̿<EFBFBD><CCBF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> <20><><EFBFBD>Ȼ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20>ִ<EFBFBD>.</p>
</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"><3E><><EFBFBD>þ<EFBFBD></a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description"><3E><><EFBFBD><EFBFBD>:</a></th><td><3E><>ũ<EFBFBD><C5A9>Ʈ <20>α׿<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PUT Ȥ<><C8A4> POST <20><>û<EFBFBD><C3BB> <20>ִ뷮</td></tr>
<tr><th><a href="directive-dict.html#Syntax"><3E><><EFBFBD><EFBFBD>:</a></th><td><code>ScriptLogBuffer <var>bytes</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default"><3E><EFBFBD><E2BABB>:</a></th><td><code>ScriptLogBuffer 1024</code></td></tr>
<tr><th><a href="directive-dict.html#Context"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:</a></th><td><3E>ּ<EFBFBD><D6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3>Ʈ</td></tr>
<tr><th><a href="directive-dict.html#Status"><3E><><EFBFBD><EFBFBD>:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module"><3E><><EFBFBD><EFBFBD>:</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>ū <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>޾Ƽ<DEBE> <20>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʹ<EFBFBD> <20><><EFBFBD><EFBFBD> Ŀ<><C4BF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PUT Ȥ<><C8A4> POST <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ũ<><20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>. <20><EFBFBD><E2BABB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
1024 <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> <20>α׿<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD>þ <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD>.</p>
</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"><3E><><EFBFBD>þ<EFBFBD></a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description"><3E><><EFBFBD><EFBFBD>:</a></th><td>CGI <20><>ũ<EFBFBD><C5A9>Ʈ <20>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ũ<><C5A9> <20><><EFBFBD><EFBFBD></td></tr>
<tr><th><a href="directive-dict.html#Syntax"><3E><><EFBFBD><EFBFBD>:</a></th><td><code>ScriptLogLength <var>bytes</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default"><3E><EFBFBD><E2BABB>:</a></th><td><code>ScriptLogLength 10385760</code></td></tr>
<tr><th><a href="directive-dict.html#Context"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:</a></th><td><3E>ּ<EFBFBD><D6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3>Ʈ</td></tr>
<tr><th><a href="directive-dict.html#Status"><3E><><EFBFBD><EFBFBD>:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module"><3E><><EFBFBD><EFBFBD>:</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><3E><> CGI <20><>ũ<EFBFBD><C5A9>Ʈ
<20>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ũ<><20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>. CGI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߻<EFBFBD><DFBB>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>
<20><>û <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ <20><><EFBFBD><EFBFBD> <20><>) <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>α׿<CEB1>
<20><><EFBFBD>ϵDZ⶧<C7B1><E2B6A7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ſ<EFBFBD> Ŀ<><C4BF> <20><> <20>ִ<EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ŀ<><C4BF><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>þ <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> CGI <20>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD>
<20><><EFBFBD><EFBFBD>ũ<EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ũ<><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
<20>̻<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʴ´<CAB4>.</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 ȯ<><EFBFBD><E6BAAF></a></h2>
<p><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <a href="http://hoohoo.ncsa.uiuc.edu/cgi/">CGI ǥ<><C7A5></a><3E><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>
@@ -157,75 +226,6 @@
<p>(<28><>ũ<EFBFBD><C5A9>Ʈ<EFBFBD><C6AE> ǥ<><C7A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̳<EFBFBD> ǥ<>ؿ<EFBFBD><D8BF><EFBFBD><EFBFBD><EFBFBD> <20>ƹ<EFBFBD> <20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20>ʾҴٸ<D2B4> %stdout<75><74> %stderr <20>κ<EFBFBD><CEBA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD>).</p>
</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"><3E><><EFBFBD>þ<EFBFBD></a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description"><3E><><EFBFBD><EFBFBD>:</a></th><td>CGI <20><>ũ<EFBFBD><C5A9>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ġ</td></tr>
<tr><th><a href="directive-dict.html#Syntax"><3E><><EFBFBD><EFBFBD>:</a></th><td><code>ScriptLog <var>file-path</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:</a></th><td><3E>ּ<EFBFBD><D6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3>Ʈ</td></tr>
<tr><th><a href="directive-dict.html#Status"><3E><><EFBFBD><EFBFBD>:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module"><3E><><EFBFBD><EFBFBD>:</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> <20><><EFBFBD>þ<EFBFBD><C3BE><EFBFBD> CGI <20><>ũ<EFBFBD><C5A9>Ʈ
<20><><EFBFBD><EFBFBD><EFBFBD>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>. <code class="directive">ScriptLog</code><3E><>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>α׸<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ´<CAB4>. <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> <20>ƱԸ<C6B1>Ʈ<EFBFBD><C6AE>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ͽ<EFBFBD> CGI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>θ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD>
<code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code><3E><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>η<EFBFBD>
<20>޾Ƶ<DEBE><C6B5>δ<EFBFBD>.
</p>
<div class="example"><h3><3E><><EFBFBD><EFBFBD></h3><p><code>
ScriptLog logs/cgi_log
</code></p></div>
<p><3E>ڽ<EFBFBD> <20><><EFBFBD>μ<EFBFBD><CEBC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <em><3E><></em> <code class="directive"><a href="../mod/mpm_common.html#user">User</a></code> <20><><EFBFBD>þ<EFBFBD><C3BE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>α׸<CEB1> <20><><EFBFBD><EFBFBD>. <20>׷<EFBFBD><D7B7><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ <20>αװ<CEB1>
<20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4B8AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD><D6B4><EFBFBD>, <20><><EFBFBD><EFBFBD> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
<20><> <20><><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Ѵ<EFBFBD>. <20><>ũ<EFBFBD><C5A9>Ʈ <20>α׸<CEB1> <20><> <20>α<EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4B8AE> <20>дٸ<D0B4> <20>ڽ<EFBFBD> <20><><EFBFBD>μ<EFBFBD><CEBC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <strong><3E><><EFBFBD><EFBFBD></strong>.</p>
<p><3E><>ũ<EFBFBD><C5A9>Ʈ <20>α״<CEB1> CGI <20><>ũ<EFBFBD><C5A9>Ʈ<EFBFBD><C6AE> <20>ۼ<EFBFBD><DBBC>Ҷ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
<20><EFBFBD><EBB5B5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ƴ<EFBFBD><C6B4><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD>. <20>ӵ<EFBFBD><D3B5><EFBFBD> ȿ<><C8BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9BFA1> <20><><EFBFBD><EFBFBD>ȭ<EFBFBD><C8AD> <20>ȵ<EFBFBD><C8B5>ְ<EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>̿<EFBFBD><CCBF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> <20><><EFBFBD>Ȼ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20>ִ<EFBFBD>.</p>
</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"><3E><><EFBFBD>þ<EFBFBD></a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description"><3E><><EFBFBD><EFBFBD>:</a></th><td><3E><>ũ<EFBFBD><C5A9>Ʈ <20>α׿<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PUT Ȥ<><C8A4> POST <20><>û<EFBFBD><C3BB> <20>ִ뷮</td></tr>
<tr><th><a href="directive-dict.html#Syntax"><3E><><EFBFBD><EFBFBD>:</a></th><td><code>ScriptLogBuffer <var>bytes</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default"><3E><EFBFBD><E2BABB>:</a></th><td><code>ScriptLogBuffer 1024</code></td></tr>
<tr><th><a href="directive-dict.html#Context"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:</a></th><td><3E>ּ<EFBFBD><D6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3>Ʈ</td></tr>
<tr><th><a href="directive-dict.html#Status"><3E><><EFBFBD><EFBFBD>:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module"><3E><><EFBFBD><EFBFBD>:</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>ū <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>޾Ƽ<DEBE> <20>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʹ<EFBFBD> <20><><EFBFBD><EFBFBD> Ŀ<><C4BF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PUT Ȥ<><C8A4> POST <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ũ<><20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>. <20><EFBFBD><E2BABB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
1024 <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> <20>α׿<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD>þ <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD>.</p>
</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"><3E><><EFBFBD>þ<EFBFBD></a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description"><3E><><EFBFBD><EFBFBD>:</a></th><td>CGI <20><>ũ<EFBFBD><C5A9>Ʈ <20>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ũ<><C5A9> <20><><EFBFBD><EFBFBD></td></tr>
<tr><th><a href="directive-dict.html#Syntax"><3E><><EFBFBD><EFBFBD>:</a></th><td><code>ScriptLogLength <var>bytes</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default"><3E><EFBFBD><E2BABB>:</a></th><td><code>ScriptLogLength 10385760</code></td></tr>
<tr><th><a href="directive-dict.html#Context"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:</a></th><td><3E>ּ<EFBFBD><D6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3>Ʈ</td></tr>
<tr><th><a href="directive-dict.html#Status"><3E><><EFBFBD><EFBFBD>:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module"><3E><><EFBFBD><EFBFBD>:</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><3E><> CGI <20><>ũ<EFBFBD><C5A9>Ʈ
<20>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ũ<><20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>. CGI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߻<EFBFBD><DFBB>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>
<20><>û <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ <20><><EFBFBD><EFBFBD> <20><>) <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>α׿<CEB1>
<20><><EFBFBD>ϵDZ⶧<C7B1><E2B6A7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ſ<EFBFBD> Ŀ<><C4BF> <20><> <20>ִ<EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ŀ<><C4BF><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>þ <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> CGI <20>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD>
<20><><EFBFBD><EFBFBD>ũ<EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ũ<><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
<20>̻<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʴ´<CAB4>.</p>
</div>
</div>
<div class="bottomlang">

View File

@@ -74,7 +74,6 @@
<li><a href="../suexec.html">Running CGI programs under different
user IDs</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="CGIDScriptTimeout" id="CGIDScriptTimeout">CGIDScriptTimeout</a> <a name="cgidscripttimeout" id="cgidscripttimeout">Directive</a></h2>
<table class="directive">
@@ -126,6 +125,7 @@ the cgi daemon</td></tr>
</div>
</div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/mod/mod_cgid.html" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -78,7 +78,6 @@ thread
<li><a href="../suexec.html">Ex<45>cution de programmes CGI sous des
utilisateurs diff<66>rents</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="cgidscripttimeout" id="cgidscripttimeout">Directive</a> <a name="CGIDScriptTimeout" id="CGIDScriptTimeout">CGIDScriptTimeout</a></h2>
<table class="directive">
@@ -130,6 +129,7 @@ communiquer avec le d
</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_cgid.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -73,7 +73,6 @@
<li><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code></li>
<li><a href="../suexec.html">CGI プログラムを違うユーザ ID で実行する</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="CGIDScriptTimeout" id="CGIDScriptTimeout">CGIDScriptTimeout</a> <a name="cgidscripttimeout" id="cgidscripttimeout">ディレクティブ</a></h2>
<table class="directive">
@@ -113,6 +112,7 @@ unset</code></td></tr>
</div>
</div>
<div class="bottomlang">
<p><span>翻訳済み言語: </span><a href="../en/mod/mod_cgid.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -71,7 +71,6 @@
<li><a href="../suexec.html"><3E>ٸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ID<49><44> CGI <20><><EFBFBD>α׷<CEB1>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD></a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></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"><3E><><EFBFBD>þ<EFBFBD></a></h2>
<table class="directive">
@@ -109,6 +108,7 @@ unset</code></td></tr>
</div>
</div>
<div class="bottomlang">
<p><span><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: </span><a href="../en/mod/mod_cgid.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |

View File

@@ -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>
@@ -199,6 +162,43 @@
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="problems" id="problems">Common Problems</a></h2>
<h3>Invalid character set names</h3>
<p>The character set name parameters of <code class="directive"><a href="#charsetsourceenc">CharsetSourceEnc</a></code> and
<code class="directive"><a href="#charsetdefault">CharsetDefault</a></code>
must be acceptable to the translation mechanism used by
<a class="glossarylink" href="../glossary.html#apr" title="see glossary">APR</a> on the system where
<code class="module"><a href="../mod/mod_charset_lite.html">mod_charset_lite</a></code> is deployed. These character
set names are not standardized and are usually not the same as
the corresponding values used in http headers. Currently, APR
can only use iconv(3), so you can easily test your character set
names using the iconv(1) program, as follows:</p>
<div class="example"><p><code>
iconv -f charsetsourceenc-value -t charsetdefault-value
</code></p></div>
<h3>Mismatch between character set of content and translation
rules</h3>
<p>If the translation rules don't make sense for the content,
translation can fail in various ways, including:</p>
<ul>
<li>The translation mechanism may return a bad return code,
and the connection will be aborted.</li>
<li>The translation mechanism may silently place special
characters (e.g., question marks) in the output buffer when
it cannot translate the input buffer.</li>
</ul>
</div>
</div>
<div class="bottomlang">

View File

@@ -62,47 +62,6 @@ traductions ou les r
<li><img alt="" src="../images/down.gif" /> <a href="#problems">Probl<62>mes courants</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="problems" id="problems">Probl<62>mes courants</a></h2>
<h3>Noms de jeux de caract<63>res non valides</h3>
<p>Les noms des jeux de caract<63>res pass<73>s en param<61>tres aux
directives <code class="directive"><a href="#charsetsourceenc">CharsetSourceEnc</a></code> et
<code class="directive"><a href="#charsetdefault">CharsetDefault</a></code>
doivent <20>tre reconnus par le m<>canisme de traduction utilis<69> par
<a class="glossarylink" href="../glossary.html#apr" title="voir glossaire">APR</a> sur le syst<73>me o<>
<code class="module"><a href="../mod/mod_charset_lite.html">mod_charset_lite</a></code> est utilis<69>. Ces noms de jeux de
caract<63>res ne sont pas standardis<69>s, et sont en g<>n<EFBFBD>ral diff<66>rents
des valeurs qui leur correspondent dans les en-t<>tes HTTP.
Actuellement, APR ne peut utiliser que iconv(3) ; vous pouvez donc
tester facilement vos noms de jeux de caract<63>res en utilisant le
programme iconv(1), de la mani<6E>re suivante :</p>
<div class="example"><p><code>
iconv -f valeur-charsetsourceenc -t valeur-charsetdefault
</code></p></div>
<h3>Incompatibilit<69> entre le jeu de caract<63>res du
contenu et les r<>gles de traduction</h3>
<p>Si les r<>gles de traduction ne peuvent s'appliquer au contenu,
la traduction peut <20>chouer avec des cons<6E>quences diverses, comme
:</p>
<ul>
<li>Le m<>canisme de traduction peut renvoyer un mauvais code de
retour, et la connexion sera interrompue.</li>
<li>Le m<>canisme de traduction peut ins<6E>rer silencieusement des
caract<63>res sp<73>ciaux (par exemple des points d'interrogation) dans
le tampon de sortie lorsqu'il n'est pas en mesure de traduire le
tampon d'entr<74>e.</li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="charsetdefault" id="charsetdefault">Directive</a> <a name="CharsetDefault" id="CharsetDefault">CharsetDefault</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Jeu de caract<63>re vers lequel la traduction doit
@@ -215,6 +174,47 @@ caract
valide du point de vue du syst<73>me.
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="problems" id="problems">Probl<62>mes courants</a></h2>
<h3>Noms de jeux de caract<63>res non valides</h3>
<p>Les noms des jeux de caract<63>res pass<73>s en param<61>tres aux
directives <code class="directive"><a href="#charsetsourceenc">CharsetSourceEnc</a></code> et
<code class="directive"><a href="#charsetdefault">CharsetDefault</a></code>
doivent <20>tre reconnus par le m<>canisme de traduction utilis<69> par
<a class="glossarylink" href="../glossary.html#apr" title="voir glossaire">APR</a> sur le syst<73>me o<>
<code class="module"><a href="../mod/mod_charset_lite.html">mod_charset_lite</a></code> est utilis<69>. Ces noms de jeux de
caract<63>res ne sont pas standardis<69>s, et sont en g<>n<EFBFBD>ral diff<66>rents
des valeurs qui leur correspondent dans les en-t<>tes HTTP.
Actuellement, APR ne peut utiliser que iconv(3) ; vous pouvez donc
tester facilement vos noms de jeux de caract<63>res en utilisant le
programme iconv(1), de la mani<6E>re suivante :</p>
<div class="example"><p><code>
iconv -f valeur-charsetsourceenc -t valeur-charsetdefault
</code></p></div>
<h3>Incompatibilit<69> entre le jeu de caract<63>res du
contenu et les r<>gles de traduction</h3>
<p>Si les r<>gles de traduction ne peuvent s'appliquer au contenu,
la traduction peut <20>chouer avec des cons<6E>quences diverses, comme
:</p>
<ul>
<li>Le m<>canisme de traduction peut renvoyer un mauvais code de
retour, et la connexion sera interrompue.</li>
<li>Le m<>canisme de traduction peut ins<6E>rer silencieusement des
caract<63>res sp<73>ciaux (par exemple des points d'interrogation) dans
le tampon de sortie lorsqu'il n'est pas en mesure de traduire le
tampon d'entr<74>e.</li>
</ul>
</div>
</div>
<div class="bottomlang">

View File

@@ -66,40 +66,6 @@
<li><img alt="" src="../images/down.gif" /> <a href="#problems"><3E>Ϲ<EFBFBD><CFB9><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD></a></li>
</ul><ul class="seealso"><li><a href="#comments_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"><3E>Ϲ<EFBFBD><CFB9><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD></a></h2>
<h3><3E>߸<EFBFBD><DFB8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20≯<EFBFBD></h3>
<p><code class="module"><a href="../mod/mod_charset_lite.html">mod_charset_lite</a></code><3E><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20>ý<EFBFBD><C3BD><EFBFBD><EFBFBD><EFBFBD>
ARP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <code class="directive"><a href="#charsetsourceenc">CharsetSourceEnc</a></code><3E><>
<code class="directive"><a href="#charsetdefault">CharsetDefault</a></code><3E><>
<20>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20≯<EFBFBD><CCB8><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20><> <20>־<EFBFBD><D6BE><EFBFBD> <20>Ѵ<EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20≯<EFBFBD><CCB8><EFBFBD> ǥ<><C7A5>ȭ<EFBFBD><C8AD><EFBFBD><EFBFBD> <20>ʾҰ<CABE>, http <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>׻<EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ<EFBFBD>. <20><><EFBFBD><EFBFBD> APR<50><52> iconv(3)<29><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<CFB1><E2B6A7><EFBFBD><EFBFBD>,
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> iconv(1) <20><><EFBFBD>α׷<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> Ư<><C6AF> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20≯<EFBFBD><CCB8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD><D6B4><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><> <20>ִ<EFBFBD>:</p>
<div class="example"><p><code>
iconv -f charsetsourceenc-value -t charsetdefault-value
</code></p></div>
<h3><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ<EFBFBD><C8AF>Ģ<EFBFBD><C4A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ٸ<EFBFBD></h3>
<p><3E><>ȯ<EFBFBD><C8AF>Ģ<EFBFBD><C4A2> <20><>Ȳ<EFBFBD><C8B2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><>ȯ<EFBFBD><C8AF> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD>:</p>
<ul>
<li><3E><>ȯ<EFBFBD><C8AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ȯ<EFBFBD>ڵ带 <20><>ȯ<EFBFBD>ϰ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><> <20>ִ<EFBFBD>.</li>
<li><3E>Է¹<D4B7><C2B9>۸<EFBFBD> <20><>ȯ<EFBFBD><C8AF><EFBFBD><EFBFBD> <20><><EFBFBD>Ҷ<EFBFBD> <20><><EFBFBD>¹<EFBFBD><C2B9>ۿ<EFBFBD> <20><><EFBFBD><EFBFBD> Ư<><C6AF><EFBFBD><EFBFBD>
<20><><EFBFBD>ڸ<EFBFBD> (<28><>, <20><><EFBFBD><EFBFBD>ǥ) <20><><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD>.</li>
</ul>
</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"><3E><><EFBFBD>þ<EFBFBD></a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description"><3E><><EFBFBD><EFBFBD>:</a></th><td><3E><>ȯ<EFBFBD><C8AF> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></td></tr>
@@ -191,6 +157,40 @@
<p>Solaris 8<><38> iconv<6E><76> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.</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"><3E>Ϲ<EFBFBD><CFB9><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD></a></h2>
<h3><3E>߸<EFBFBD><DFB8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20≯<EFBFBD></h3>
<p><code class="module"><a href="../mod/mod_charset_lite.html">mod_charset_lite</a></code><3E><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20>ý<EFBFBD><C3BD><EFBFBD><EFBFBD><EFBFBD>
ARP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <code class="directive"><a href="#charsetsourceenc">CharsetSourceEnc</a></code><3E><>
<code class="directive"><a href="#charsetdefault">CharsetDefault</a></code><3E><>
<20>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20≯<EFBFBD><CCB8><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20><> <20>־<EFBFBD><D6BE><EFBFBD> <20>Ѵ<EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20≯<EFBFBD><CCB8><EFBFBD> ǥ<><C7A5>ȭ<EFBFBD><C8AD><EFBFBD><EFBFBD> <20>ʾҰ<CABE>, http <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>׻<EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ<EFBFBD>. <20><><EFBFBD><EFBFBD> APR<50><52> iconv(3)<29><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<CFB1><E2B6A7><EFBFBD><EFBFBD>,
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> iconv(1) <20><><EFBFBD>α׷<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> Ư<><C6AF> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20≯<EFBFBD><CCB8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD><D6B4><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><> <20>ִ<EFBFBD>:</p>
<div class="example"><p><code>
iconv -f charsetsourceenc-value -t charsetdefault-value
</code></p></div>
<h3><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ<EFBFBD><C8AF>Ģ<EFBFBD><C4A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ٸ<EFBFBD></h3>
<p><3E><>ȯ<EFBFBD><C8AF>Ģ<EFBFBD><C4A2> <20><>Ȳ<EFBFBD><C8B2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><>ȯ<EFBFBD><C8AF> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD>:</p>
<ul>
<li><3E><>ȯ<EFBFBD><C8AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ȯ<EFBFBD>ڵ带 <20><>ȯ<EFBFBD>ϰ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><> <20>ִ<EFBFBD>.</li>
<li><3E>Է¹<D4B7><C2B9>۸<EFBFBD> <20><>ȯ<EFBFBD><C8AF><EFBFBD><EFBFBD> <20><><EFBFBD>Ҷ<EFBFBD> <20><><EFBFBD>¹<EFBFBD><C2B9>ۿ<EFBFBD> <20><><EFBFBD><EFBFBD> Ư<><C6AF><EFBFBD><EFBFBD>
<20><><EFBFBD>ڸ<EFBFBD> (<28><>, <20><><EFBFBD><EFBFBD>ǥ) <20><><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD>.</li>
</ul>
</div>
</div>
<div class="bottomlang">

View File

@@ -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">&lt;Location "/foo"&gt;
Dav On
&lt;/Location&gt;</pre>
<p>The value <code>On</code> is actually an alias for the default
provider <code>filesystem</code> which is served by the <code class="module"><a href="../mod/mod_dav_fs.html">mod_dav_fs</a></code> module. Note, that once you have DAV enabled
for some location, it <em>cannot</em> be disabled for sublocations.
For a complete configuration example have a look at the <a href="#example">section above</a>.</p>
<div class="warning">
Do not enable WebDAV until you have secured your server. Otherwise
everyone will be able to distribute files on your system.
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="DavDepthInfinity" id="DavDepthInfinity">DavDepthInfinity</a> <a name="davdepthinfinity" id="davdepthinfinity">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Allow PROPFIND, Depth: Infinity requests</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DavDepthInfinity on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DavDepthInfinity off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr>
</table>
<p>Use the <code class="directive">DavDepthInfinity</code> directive to
allow the processing of <code>PROPFIND</code> requests containing the
header 'Depth: Infinity'. Because this type of request could constitute
a denial-of-service attack, by default it is not allowed.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="DavMinTimeout" id="DavMinTimeout">DavMinTimeout</a> <a name="davmintimeout" id="davmintimeout">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Minimum amount of time the server holds a lock on
a DAV resource</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DavMinTimeout <var>seconds</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DavMinTimeout 0</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr>
</table>
<p>When a client requests a DAV resource lock, it can also
specify a time when the lock will be automatically removed by
the server. This value is only a request, and the server can
ignore it or inform the client of an arbitrary value.</p>
<p>Use the <code class="directive">DavMinTimeout</code> directive to specify, in
seconds, the minimum lock timeout to return to a client.
Microsoft Web Folders defaults to a timeout of 120 seconds; the
<code class="directive">DavMinTimeout</code> can override this to a higher value
(like 600 seconds) to reduce the chance of the client losing
the lock due to network latency.</p>
<div class="example"><h3>Example</h3><pre class="prettyprint lang-config">&lt;Location "/MSWord"&gt;
DavMinTimeout 600
&lt;/Location&gt;</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="example" id="example">Enabling WebDAV</a></h2>
<p>To enable <code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code>, add the following to a
@@ -171,80 +245,6 @@ Alias "/php-source" "/home/gstein/php_files"
used to access the output of the PHP scripts, and
<code>http://example.com/php-source</code> can be used with a DAV
client to manipulate them.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="Dav" id="Dav">Dav</a> <a name="dav" id="dav">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enable WebDAV HTTP methods</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Dav On|Off|<var>provider-name</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>Dav Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr>
</table>
<p>Use the <code class="directive">Dav</code> directive to enable the
WebDAV HTTP methods for the given container:</p>
<pre class="prettyprint lang-config">&lt;Location "/foo"&gt;
Dav On
&lt;/Location&gt;</pre>
<p>The value <code>On</code> is actually an alias for the default
provider <code>filesystem</code> which is served by the <code class="module"><a href="../mod/mod_dav_fs.html">mod_dav_fs</a></code> module. Note, that once you have DAV enabled
for some location, it <em>cannot</em> be disabled for sublocations.
For a complete configuration example have a look at the <a href="#example">section above</a>.</p>
<div class="warning">
Do not enable WebDAV until you have secured your server. Otherwise
everyone will be able to distribute files on your system.
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="DavDepthInfinity" id="DavDepthInfinity">DavDepthInfinity</a> <a name="davdepthinfinity" id="davdepthinfinity">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Allow PROPFIND, Depth: Infinity requests</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DavDepthInfinity on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DavDepthInfinity off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr>
</table>
<p>Use the <code class="directive">DavDepthInfinity</code> directive to
allow the processing of <code>PROPFIND</code> requests containing the
header 'Depth: Infinity'. Because this type of request could constitute
a denial-of-service attack, by default it is not allowed.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="DavMinTimeout" id="DavMinTimeout">DavMinTimeout</a> <a name="davmintimeout" id="davmintimeout">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Minimum amount of time the server holds a lock on
a DAV resource</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DavMinTimeout <var>seconds</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DavMinTimeout 0</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr>
</table>
<p>When a client requests a DAV resource lock, it can also
specify a time when the lock will be automatically removed by
the server. This value is only a request, and the server can
ignore it or inform the client of an arbitrary value.</p>
<p>Use the <code class="directive">DavMinTimeout</code> directive to specify, in
seconds, the minimum lock timeout to return to a client.
Microsoft Web Folders defaults to a timeout of 120 seconds; the
<code class="directive">DavMinTimeout</code> can override this to a higher value
(like 600 seconds) to reduce the chance of the client losing
the lock due to network latency.</p>
<div class="example"><h3>Example</h3><pre class="prettyprint lang-config">&lt;Location "/MSWord"&gt;
DavMinTimeout 600
&lt;/Location&gt;</pre>
</div>
</div>
</div>
<div class="bottomlang">

View File

@@ -63,6 +63,88 @@ documents via le web (<a href="http://www.webdav.org/">WebDAV</a>)</td></tr>
<li><a href="http://www.webdav.org">Ressources WebDAV</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="dav" id="dav">Directive</a> <a name="Dav" id="Dav">Dav</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active les m<>thodes HTTP WebDAV</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Dav On|Off|<var>nom fournisseur</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>Dav Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>r<>pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr>
</table>
<p>La directive <code class="directive">Dav</code> active les
m<>thodes HTTP WebDAV pour le conteneur condid<69>r<EFBFBD> :</p>
<pre class="prettyprint lang-config">&lt;Location /foo&gt;
Dav On
&lt;/Location&gt;</pre>
<p>La valeur <code>On</code> est en fait un alias vers le
fournisseur par d<>faut <code>filesystem</code> impl<70>ment<6E> par le
module <code class="module"><a href="../mod/mod_dav_fs.html">mod_dav_fs</a></code>. Notez que lorsque DAV est activ<69>
pour un conteneur, on <em>ne peut pas</em> le d<>sactiver pour ses
sous-conteneurs. Pour un exemple de configuration complet,
reportez-vous <20> la <a href="#example">section pr<70>c<EFBFBD>dente</a>.</p>
<div class="warning">
N'activez pas WebDAV tant que votre serveur n'est pas s<>curis<69>. Si
vous passez outre cette recommandation, tout le monde pourra
enregistrer des fichiers sur votre syst<73>me.
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="davdepthinfinity" id="davdepthinfinity">Directive</a> <a name="DavDepthInfinity" id="DavDepthInfinity">DavDepthInfinity</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Autorise les requ<71>tes PROPFIND avec en-t<>te Depth:
Infinity</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DavDepthInfinity on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>DavDepthInfinity off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r<>pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr>
</table>
<p>La directive <code class="directive">DavDepthInfinity</code>
autorise le traitement des requ<71>tes <code>PROPFIND</code>
contenant l'en-t<>te Depth: Infinity. Par d<>faut, ce type de requ<71>te
n'est pas autoris<69>, car il peut favoriser les attaques de type D<>ni
de service.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="davmintimeout" id="davmintimeout">Directive</a> <a name="DavMinTimeout" id="DavMinTimeout">DavMinTimeout</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dur<75>e minimale pendant laquelle le serveur maintient un
verrou sur une ressource DAV</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DavMinTimeout <var>secondes</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>DavMinTimeout 0</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r<>pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr>
</table>
<p>Lorsqu'un client demande le verrouillage d'une ressource DAV, il
peut aussi sp<73>cifier une dur<75>e au bout de laquelle le verrou sera
automatiquement supprim<69> par le serveur. Cette valeur ne constitue
qu'une requ<71>te, et le serveur peut l'ignorer ou informer le client
qu'il va utiliser une valeur arbitraire.</p>
<p>La directive <code class="directive">DavMinTimeout</code>
sp<73>cifie, en secondes, la dur<75>e minimale de verrouillage <20> renvoyer
au client. Les R<>pertoires Web de Microsoft pr<70>sentent une dur<75>e par
d<>faut de 120 secondes ; la directive
<code class="directive">DavMinTimeout</code> permet de d<>finir une valeur
sup<75>rieure (par exemple 600 secondes), afin de r<>duire les risques
de perte du verrou par le client suite <20> une surcharge du
r<>seau.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">&lt;Location /MSWord&gt;
DavMinTimeout 600
&lt;/Location&gt;</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="example" id="example">Activation de WebDAV</a></h2>
<p>Pour activer le module <code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code>, ajoutez la ligne
@@ -186,88 +268,6 @@ ForceType text/plain
l'ex<65>cution des scripts PHP, et
<code>http://example.com/php-source</code> pour les manipuler avec
DAV.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="dav" id="dav">Directive</a> <a name="Dav" id="Dav">Dav</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active les m<>thodes HTTP WebDAV</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Dav On|Off|<var>nom fournisseur</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>Dav Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>r<>pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr>
</table>
<p>La directive <code class="directive">Dav</code> active les
m<>thodes HTTP WebDAV pour le conteneur condid<69>r<EFBFBD> :</p>
<pre class="prettyprint lang-config">&lt;Location /foo&gt;
Dav On
&lt;/Location&gt;</pre>
<p>La valeur <code>On</code> est en fait un alias vers le
fournisseur par d<>faut <code>filesystem</code> impl<70>ment<6E> par le
module <code class="module"><a href="../mod/mod_dav_fs.html">mod_dav_fs</a></code>. Notez que lorsque DAV est activ<69>
pour un conteneur, on <em>ne peut pas</em> le d<>sactiver pour ses
sous-conteneurs. Pour un exemple de configuration complet,
reportez-vous <20> la <a href="#example">section pr<70>c<EFBFBD>dente</a>.</p>
<div class="warning">
N'activez pas WebDAV tant que votre serveur n'est pas s<>curis<69>. Si
vous passez outre cette recommandation, tout le monde pourra
enregistrer des fichiers sur votre syst<73>me.
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="davdepthinfinity" id="davdepthinfinity">Directive</a> <a name="DavDepthInfinity" id="DavDepthInfinity">DavDepthInfinity</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Autorise les requ<71>tes PROPFIND avec en-t<>te Depth:
Infinity</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DavDepthInfinity on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>DavDepthInfinity off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r<>pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr>
</table>
<p>La directive <code class="directive">DavDepthInfinity</code>
autorise le traitement des requ<71>tes <code>PROPFIND</code>
contenant l'en-t<>te Depth: Infinity. Par d<>faut, ce type de requ<71>te
n'est pas autoris<69>, car il peut favoriser les attaques de type D<>ni
de service.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="davmintimeout" id="davmintimeout">Directive</a> <a name="DavMinTimeout" id="DavMinTimeout">DavMinTimeout</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dur<75>e minimale pendant laquelle le serveur maintient un
verrou sur une ressource DAV</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DavMinTimeout <var>secondes</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>DavMinTimeout 0</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r<>pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr>
</table>
<p>Lorsqu'un client demande le verrouillage d'une ressource DAV, il
peut aussi sp<73>cifier une dur<75>e au bout de laquelle le verrou sera
automatiquement supprim<69> par le serveur. Cette valeur ne constitue
qu'une requ<71>te, et le serveur peut l'ignorer ou informer le client
qu'il va utiliser une valeur arbitraire.</p>
<p>La directive <code class="directive">DavMinTimeout</code>
sp<73>cifie, en secondes, la dur<75>e minimale de verrouillage <20> renvoyer
au client. Les R<>pertoires Web de Microsoft pr<70>sentent une dur<75>e par
d<>faut de 120 secondes ; la directive
<code class="directive">DavMinTimeout</code> permet de d<>finir une valeur
sup<75>rieure (par exemple 600 secondes), afin de r<>duire les risques
de perte du verrou par le client suite <20> une surcharge du
r<>seau.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">&lt;Location /MSWord&gt;
DavMinTimeout 600
&lt;/Location&gt;</pre>
</div>
</div>
</div>
<div class="bottomlang">

View File

@@ -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">&lt;Location /foo&gt;
Dav On
&lt;/Location&gt;</pre>
<p><code>On</code> という指定は実際には <code class="module"><a href="../mod/mod_dav_fs.html">mod_dav_fs</a></code>
で提供されているデフォルトのプロバイダ、<code>filesystem</code>
へのエイリアスになっています。一度あるロケーションで DAV
を有効にした後は、そのサブロケーションで<em>無効化することはできない</em>
ということに注意してください。完全な設定例は<a href="#example">上記のセクション</a> をご覧下さい。</p>
<div class="warning">
サーバのセキュリティが確保できるまで WebDAV を有効にしないでください。
そうしなければ誰でもそのサーバでファイルを配布することができるように
なってしまいます。
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="DavDepthInfinity" id="DavDepthInfinity">DavDepthInfinity</a> <a name="davdepthinfinity" id="davdepthinfinity">ディレクティブ</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>PROPFIND, Depth: Infinity リクエストを許可します</td></tr>
<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DavDepthInfinity on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>DavDepthInfinity off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ</td></tr>
<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_dav</td></tr>
</table>
<p>'Depth: Infinity' を含んでいる
<code>PROPFIND</code> リクエストを処理できるようにするには、
<code class="directive">DavDepthInfinity</code>
ディレクティブを使います。このタイプのリクエストは
denial-of-service アタックとなりうるので、
デフォルトでは許可されていません。</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="DavMinTimeout" id="DavMinTimeout">DavMinTimeout</a> <a name="davmintimeout" id="davmintimeout">ディレクティブ</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>サーバが DAV リソースのロックを維持する最小時間です。
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DavMinTimeout <var>seconds</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>DavMinTimeout 0</code></td></tr>
<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ</td></tr>
<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_dav</td></tr>
</table>
<p>クライアントが DAV リソースロックを要求した場合、
ロックがサーバによって自動的に解除されるまでの時間を
同時に指定することができます。この値は単なるリクエストであって、
サーバはこれを無視することもできますし、
任意の値をクライアントに通知することもできます。</p>
<p>クライアントに戻すロックタイムアウトの最小時間を、
秒で、指定するために <code class="directive">DavMinTimeout</code>
ディレクティブを使います。
マイクロソフトのウェブフォルダのデフォルトでは 120 秒ですが;
ネットワークの遅延のせいでクライアントがロックを失うのを減らすために、
<code class="directive">DavMinTimeout</code> を使って
これをもっと大きな値 (例えば 600 秒) に上書きできます。</p>
<div class="example"><h3>例</h3><pre class="prettyprint lang-config">&lt;Location /MSWord&gt;
DavMinTimeout 600
&lt;/Location&gt;</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="example" id="example">Enabling WebDAV</a></h2>
<p>mod_dav を有効にするには、<code>httpd.conf</code>
@@ -175,86 +255,6 @@ Alias /php-source /home/gstein/php_files
出力をアクセスするために使うことができ、
<code>http://example.com/php-source</code> を DAV クライアントによる
が操作のために使うことができます。</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="Dav" id="Dav">Dav</a> <a name="dav" id="dav">ディレクティブ</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>WebDAV HTTP メソッドを有効にします</td></tr>
<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>Dav On|Off|<var>provider-name</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>Dav Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>ディレクトリ</td></tr>
<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_dav</td></tr>
</table>
<p>与えられたコンテナで WebDAV HTTP メソッドが使えるようにするには
次のようにします。</p>
<pre class="prettyprint lang-config">&lt;Location /foo&gt;
Dav On
&lt;/Location&gt;</pre>
<p><code>On</code> という指定は実際には <code class="module"><a href="../mod/mod_dav_fs.html">mod_dav_fs</a></code>
で提供されているデフォルトのプロバイダ、<code>filesystem</code>
へのエイリアスになっています。一度あるロケーションで DAV
を有効にした後は、そのサブロケーションで<em>無効化することはできない</em>
ということに注意してください。完全な設定例は<a href="#example">上記のセクション</a> をご覧下さい。</p>
<div class="warning">
サーバのセキュリティが確保できるまで WebDAV を有効にしないでください。
そうしなければ誰でもそのサーバでファイルを配布することができるように
なってしまいます。
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="DavDepthInfinity" id="DavDepthInfinity">DavDepthInfinity</a> <a name="davdepthinfinity" id="davdepthinfinity">ディレクティブ</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>PROPFIND, Depth: Infinity リクエストを許可します</td></tr>
<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DavDepthInfinity on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>DavDepthInfinity off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ</td></tr>
<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_dav</td></tr>
</table>
<p>'Depth: Infinity' を含んでいる
<code>PROPFIND</code> リクエストを処理できるようにするには、
<code class="directive">DavDepthInfinity</code>
ディレクティブを使います。このタイプのリクエストは
denial-of-service アタックとなりうるので、
デフォルトでは許可されていません。</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="DavMinTimeout" id="DavMinTimeout">DavMinTimeout</a> <a name="davmintimeout" id="davmintimeout">ディレクティブ</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>サーバが DAV リソースのロックを維持する最小時間です。
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DavMinTimeout <var>seconds</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>DavMinTimeout 0</code></td></tr>
<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ</td></tr>
<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_dav</td></tr>
</table>
<p>クライアントが DAV リソースロックを要求した場合、
ロックがサーバによって自動的に解除されるまでの時間を
同時に指定することができます。この値は単なるリクエストであって、
サーバはこれを無視することもできますし、
任意の値をクライアントに通知することもできます。</p>
<p>クライアントに戻すロックタイムアウトの最小時間を、
秒で、指定するために <code class="directive">DavMinTimeout</code>
ディレクティブを使います。
マイクロソフトのウェブフォルダのデフォルトでは 120 秒ですが;
ネットワークの遅延のせいでクライアントがロックを失うのを減らすために、
<code class="directive">DavMinTimeout</code> を使って
これをもっと大きな値 (例えば 600 秒) に上書きできます。</p>
<div class="example"><h3>例</h3><pre class="prettyprint lang-config">&lt;Location /MSWord&gt;
DavMinTimeout 600
&lt;/Location&gt;</pre>
</div>
</div>
</div>
<div class="bottomlang">

View File

@@ -63,6 +63,85 @@
<li><a href="http://www.webdav.org">WebDAV <20><><EFBFBD><EFBFBD></a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></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"><3E><><EFBFBD>þ<EFBFBD></a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description"><3E><><EFBFBD><EFBFBD>:</a></th><td>WebDAV HTTP <20>޽<EFBFBD><DEBD><20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD></td></tr>
<tr><th><a href="directive-dict.html#Syntax"><3E><><EFBFBD><EFBFBD>:</a></th><td><code>Dav On|Off|<var>provider-name</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default"><3E><EFBFBD><E2BABB>:</a></th><td><code>Dav Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:</a></th><td>directory</td></tr>
<tr><th><a href="directive-dict.html#Status"><3E><><EFBFBD><EFBFBD>:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module"><3E><><EFBFBD><EFBFBD>:</a></th><td>mod_dav</td></tr>
</table>
<p><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ġ<EFBFBD><C4A1><EFBFBD><EFBFBD> WebDAV HTTP <20>޽<EFBFBD><DEBD><20><><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD>
<code class="directive">Dav</code> <20><><EFBFBD>þ <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>:</p>
<div class="example"><p><code>
&lt;Location /foo&gt;<br />
<span class="indent">
Dav On<br />
</span>
&lt;/Location&gt;
</code></p></div>
<p><code>On</code> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <code class="module"><a href="../mod/mod_dav_fs.html">mod_dav_fs</a></code>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <code>filesystem</code><3E><>
<20><>Ī<EFBFBD>̴<EFBFBD>. <20><20><>ġ<EFBFBD><C4A1><EFBFBD><EFBFBD> DAV<41><56> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DAV<41><56>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <em><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD></em> <20><><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <a href="#example"><3E><><EFBFBD><EFBFBD> <20><></a><3E><> <20><><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD>.</p>
<div class="warning">
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD> WebDAV<41><56> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. <20>׷<EFBFBD><D7B7><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>й<EFBFBD><D0B9><EFBFBD> <20><> <20>ְ<EFBFBD> <20>ȴ<EFBFBD>.
</div>
</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"><3E><><EFBFBD>þ<EFBFBD></a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description"><3E><><EFBFBD><EFBFBD>:</a></th><td>PROPFIND<4E><44> Depth: Infinity <20><>û<EFBFBD><C3BB> <20><EFBFBD>Ѵ<EFBFBD></td></tr>
<tr><th><a href="directive-dict.html#Syntax"><3E><><EFBFBD><EFBFBD>:</a></th><td><code>DavDepthInfinity on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default"><3E><EFBFBD><E2BABB>:</a></th><td><code>DavDepthInfinity off</code></td></tr>
<tr><th><a href="directive-dict.html#Context"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:</a></th><td><3E>ּ<EFBFBD><D6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3>Ʈ, directory</td></tr>
<tr><th><a href="directive-dict.html#Status"><3E><><EFBFBD><EFBFBD>:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module"><3E><><EFBFBD><EFBFBD>:</a></th><td>mod_dav</td></tr>
</table>
<p><code class="directive">DavDepthInfinity</code> <20><><EFBFBD>þ <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD>
'Depth: Infinity' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <code>PROPFIND</code> <20><>û<EFBFBD><C3BB>
<20><EFBFBD>Ѵ<EFBFBD>. <20>̷<EFBFBD> <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD>񽺰ź<F1BDBAB0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E2BABB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ´<CAB4>.</p>
</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"><3E><><EFBFBD>þ<EFBFBD></a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description"><3E><><EFBFBD><EFBFBD>:</a></th><td><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DAV <20>ڿ<EFBFBD><DABF><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ּҽð<D2BD></td></tr>
<tr><th><a href="directive-dict.html#Syntax"><3E><><EFBFBD><EFBFBD>:</a></th><td><code>DavMinTimeout <var>seconds</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default"><3E><EFBFBD><E2BABB>:</a></th><td><code>DavMinTimeout 0</code></td></tr>
<tr><th><a href="directive-dict.html#Context"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:</a></th><td><3E>ּ<EFBFBD><D6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3>Ʈ, directory</td></tr>
<tr><th><a href="directive-dict.html#Status"><3E><><EFBFBD><EFBFBD>:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module"><3E><><EFBFBD><EFBFBD>:</a></th><td>mod_dav</td></tr>
</table>
<p>Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><C6AE> DAV <20>ڿ<EFBFBD><DABF><EFBFBD> <20><><EFBFBD><EFBFBD>(lock)<29><> <20><>û<EFBFBD>Ҷ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20>˾Ƽ<CBBE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> <20><><EFBFBD><EFBFBD> <20>˷<EFBFBD><CBB7><EFBFBD> <20><> <20>ִ<EFBFBD>. <20><> <20><><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD> <20><>û<EFBFBD>ϻ<EFBFBD><CFBB≯<EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><C6AE> <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD>
Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> <20>˷<EFBFBD><CBB7><EFBFBD> <20><> <20>ִ<EFBFBD>.</p>
<p><code class="directive">DavMinTimeout</code> <20><><EFBFBD>þ<EFBFBD><C3BE><EFBFBD> Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD> <20>ּ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> (<28>ʴ<EFBFBD><CAB4><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>. Microsoft Web Folders<72><73>
<20><EFBFBD><E2BABB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 120 <20>ʸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>. <code class="directive">DavMinTimeout</code><3E><>
(600 <20>ʿ<EFBFBD> <20><><EFBFBD><EFBFBD>) <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><C6AE> <20><>Ʈ<EFBFBD><C6AE>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ҰԵǴ<D4B5> <20><><EFBFBD><20><><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD>.</p>
<div class="example"><h3><3E><><EFBFBD><EFBFBD></h3><p><code>
&lt;Location /MSWord&gt;<br />
<span class="indent">
DavMinTimeout 600<br />
</span>
&lt;/Location&gt;
</code></p></div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="example" id="example">WebDAV <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD></a></h2>
<p><code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code><3E><> <20><><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD> <code>httpd.conf</code>
@@ -176,85 +255,6 @@ Alias /php-source /home/gstein/php_files<br />
<code>http://example.com/php-source</code><3E>δ<EFBFBD> DAV Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD>
<20><>ũ<EFBFBD><C5A9>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD>.</p>
</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"><3E><><EFBFBD>þ<EFBFBD></a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description"><3E><><EFBFBD><EFBFBD>:</a></th><td>WebDAV HTTP <20>޽<EFBFBD><DEBD><20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD></td></tr>
<tr><th><a href="directive-dict.html#Syntax"><3E><><EFBFBD><EFBFBD>:</a></th><td><code>Dav On|Off|<var>provider-name</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default"><3E><EFBFBD><E2BABB>:</a></th><td><code>Dav Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:</a></th><td>directory</td></tr>
<tr><th><a href="directive-dict.html#Status"><3E><><EFBFBD><EFBFBD>:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module"><3E><><EFBFBD><EFBFBD>:</a></th><td>mod_dav</td></tr>
</table>
<p><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ġ<EFBFBD><C4A1><EFBFBD><EFBFBD> WebDAV HTTP <20>޽<EFBFBD><DEBD><20><><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD>
<code class="directive">Dav</code> <20><><EFBFBD>þ <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>:</p>
<div class="example"><p><code>
&lt;Location /foo&gt;<br />
<span class="indent">
Dav On<br />
</span>
&lt;/Location&gt;
</code></p></div>
<p><code>On</code> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <code class="module"><a href="../mod/mod_dav_fs.html">mod_dav_fs</a></code>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <code>filesystem</code><3E><>
<20><>Ī<EFBFBD>̴<EFBFBD>. <20><20><>ġ<EFBFBD><C4A1><EFBFBD><EFBFBD> DAV<41><56> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DAV<41><56>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <em><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD></em> <20><><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <a href="#example"><3E><><EFBFBD><EFBFBD> <20><></a><3E><> <20><><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD>.</p>
<div class="warning">
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD> WebDAV<41><56> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. <20>׷<EFBFBD><D7B7><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>й<EFBFBD><D0B9><EFBFBD> <20><> <20>ְ<EFBFBD> <20>ȴ<EFBFBD>.
</div>
</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"><3E><><EFBFBD>þ<EFBFBD></a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description"><3E><><EFBFBD><EFBFBD>:</a></th><td>PROPFIND<4E><44> Depth: Infinity <20><>û<EFBFBD><C3BB> <20><EFBFBD>Ѵ<EFBFBD></td></tr>
<tr><th><a href="directive-dict.html#Syntax"><3E><><EFBFBD><EFBFBD>:</a></th><td><code>DavDepthInfinity on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default"><3E><EFBFBD><E2BABB>:</a></th><td><code>DavDepthInfinity off</code></td></tr>
<tr><th><a href="directive-dict.html#Context"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:</a></th><td><3E>ּ<EFBFBD><D6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3>Ʈ, directory</td></tr>
<tr><th><a href="directive-dict.html#Status"><3E><><EFBFBD><EFBFBD>:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module"><3E><><EFBFBD><EFBFBD>:</a></th><td>mod_dav</td></tr>
</table>
<p><code class="directive">DavDepthInfinity</code> <20><><EFBFBD>þ <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD>
'Depth: Infinity' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <code>PROPFIND</code> <20><>û<EFBFBD><C3BB>
<20><EFBFBD>Ѵ<EFBFBD>. <20>̷<EFBFBD> <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD>񽺰ź<F1BDBAB0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E2BABB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ´<CAB4>.</p>
</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"><3E><><EFBFBD>þ<EFBFBD></a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description"><3E><><EFBFBD><EFBFBD>:</a></th><td><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DAV <20>ڿ<EFBFBD><DABF><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ּҽð<D2BD></td></tr>
<tr><th><a href="directive-dict.html#Syntax"><3E><><EFBFBD><EFBFBD>:</a></th><td><code>DavMinTimeout <var>seconds</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default"><3E><EFBFBD><E2BABB>:</a></th><td><code>DavMinTimeout 0</code></td></tr>
<tr><th><a href="directive-dict.html#Context"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:</a></th><td><3E>ּ<EFBFBD><D6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3>Ʈ, directory</td></tr>
<tr><th><a href="directive-dict.html#Status"><3E><><EFBFBD><EFBFBD>:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module"><3E><><EFBFBD><EFBFBD>:</a></th><td>mod_dav</td></tr>
</table>
<p>Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><C6AE> DAV <20>ڿ<EFBFBD><DABF><EFBFBD> <20><><EFBFBD><EFBFBD>(lock)<29><> <20><>û<EFBFBD>Ҷ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20>˾Ƽ<CBBE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> <20><><EFBFBD><EFBFBD> <20>˷<EFBFBD><CBB7><EFBFBD> <20><> <20>ִ<EFBFBD>. <20><> <20><><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD> <20><>û<EFBFBD>ϻ<EFBFBD><CFBB≯<EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><C6AE> <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD>
Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> <20>˷<EFBFBD><CBB7><EFBFBD> <20><> <20>ִ<EFBFBD>.</p>
<p><code class="directive">DavMinTimeout</code> <20><><EFBFBD>þ<EFBFBD><C3BE><EFBFBD> Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD> <20>ּ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> (<28>ʴ<EFBFBD><CAB4><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>. Microsoft Web Folders<72><73>
<20><EFBFBD><E2BABB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 120 <20>ʸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>. <code class="directive">DavMinTimeout</code><3E><>
(600 <20>ʿ<EFBFBD> <20><><EFBFBD><EFBFBD>) <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><C6AE> <20><>Ʈ<EFBFBD><C6AE>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ҰԵǴ<D4B5> <20><><EFBFBD><20><><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD>.</p>
<div class="example"><h3><3E><><EFBFBD><EFBFBD></h3><p><code>
&lt;Location /MSWord&gt;<br />
<span class="indent">
DavMinTimeout 600<br />
</span>
&lt;/Location&gt;
</code></p></div>
</div>
</div>
<div class="bottomlang">
<p><span><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: </span><a href="../en/mod/mod_dav.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |

Some files were not shown because too many files have changed in this diff Show More