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:
@@ -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"> de </a> |
|
||||
|
||||
@@ -121,7 +121,6 @@ available</td></tr>
|
||||
<li><img alt="" src="../images/down.gif" /> <a href="#warning">Warning</a></li>
|
||||
</ul>
|
||||
<ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AcceptFilter" id="AcceptFilter">AcceptFilter</a> <a name="acceptfilter" id="acceptfilter">Directive</a></h2>
|
||||
<table class="directive">
|
||||
@@ -4640,6 +4639,7 @@ hostname or IP address</td></tr>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>Available Languages: </span><a href="../de/mod/core.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
|
||||
|
||||
@@ -124,7 +124,6 @@
|
||||
<li><img alt="" src="../images/down.gif" /> <a href="#warning">Warning</a></li>
|
||||
</ul>
|
||||
<ul class="seealso"><li><a href="#comments_section">Comentarios</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AcceptFilter" id="AcceptFilter">AcceptFilter</a> <a name="acceptfilter" id="acceptfilter">Directiva</a></h2>
|
||||
<table class="directive">
|
||||
@@ -4360,6 +4359,7 @@ hostname or IP address</td></tr>
|
||||
</table><p>The documentation for this directive has
|
||||
not been translated yet. Please have a look at the English
|
||||
version.</p></div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>Idiomas disponibles: </span><a href="../de/mod/core.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
|
||||
|
||||
@@ -123,7 +123,6 @@ disponibles</td></tr>
|
||||
<li><img alt="" src="../images/down.gif" /> <a href="#warning">Warning</a></li>
|
||||
</ul>
|
||||
<ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="acceptfilter" id="acceptfilter">Directive</a> <a name="AcceptFilter" id="AcceptFilter">AcceptFilter</a></h2>
|
||||
<table class="directive">
|
||||
@@ -4961,6 +4960,7 @@ Apache.</td></tr>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>Langues Disponibles: </span><a href="../de/mod/core.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
|
||||
|
||||
@@ -124,7 +124,6 @@
|
||||
<li><img alt="" src="../images/down.gif" /> <a href="#warning">Warning</a></li>
|
||||
</ul>
|
||||
<ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AcceptFilter" id="AcceptFilter">AcceptFilter</a> <a name="acceptfilter" id="acceptfilter">ディレクティブ</a></h2>
|
||||
<table class="directive">
|
||||
@@ -3576,6 +3575,7 @@ of a request or the last 63, assuming the request itself is greater than
|
||||
</table><p>このディレクティブの解説文書は
|
||||
まだ翻訳されていません。英語版をご覧ください。
|
||||
</p></div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>翻訳済み言語: </span><a href="../de/mod/core.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
|
||||
|
||||
@@ -122,7 +122,6 @@
|
||||
<li><img alt="" src="../images/down.gif" /> <a href="#warning">Warning</a></li>
|
||||
</ul>
|
||||
<ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AcceptFilter" id="AcceptFilter">AcceptFilter</a> <a name="acceptfilter" id="acceptfilter">Yönergesi</a></h2>
|
||||
<table class="directive">
|
||||
@@ -4511,6 +4510,7 @@ gerçekleşmesi için sunucunun geçmesini bekleyeceği süre.</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Compatibility">Uyumluluk:</a></th><td>2.5 and later</td></tr>
|
||||
</table><p>Bu yönergenin belgesi henüz Türkçeye çevrilmedi.
|
||||
Lütfen İngilizce sürümüne bakınız.</p></div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>Mevcut Diller: </span><a href="../de/mod/core.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -91,7 +91,6 @@ have been deprecated by the new authz refactoring. Please see
|
||||
<li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li>
|
||||
<li><code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="Allow" id="Allow">Allow</a> <a name="allow" id="allow">Directive</a></h2>
|
||||
<table class="directive">
|
||||
@@ -457,6 +456,7 @@ Satisfy Any</pre>
|
||||
<li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>Available Languages: </span><a href="../en/mod/mod_access_compat.html" title="English"> en </a> |
|
||||
|
||||
@@ -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"> en </a> |
|
||||
|
||||
@@ -92,7 +92,6 @@
|
||||
<li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li>
|
||||
<li><code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="Allow" id="Allow">Allow</a> <a name="allow" id="allow">ディレクティブ</a></h2>
|
||||
<table class="directive">
|
||||
@@ -442,6 +441,7 @@
|
||||
<li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>翻訳済み言語: </span><a href="../en/mod/mod_access_compat.html" hreflang="en" rel="alternate" title="English"> en </a> |
|
||||
|
||||
@@ -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"> de </a> |
|
||||
|
||||
@@ -53,7 +53,6 @@
|
||||
<li><a href="../howto/cgi.html">Dynamic Content with CGI</a></li>
|
||||
<li><a href="../handler.html">Apache httpd's Handler Use</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="Action" id="Action">Action</a> <a name="action" id="action">Directive</a></h2>
|
||||
<table class="directive">
|
||||
@@ -148,6 +147,7 @@ Script PUT /~bob/put.cgi</pre>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>Available Languages: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
|
||||
|
||||
@@ -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"> de </a> |
|
||||
|
||||
@@ -59,7 +59,6 @@ CGI スクリプトを実行する機能を提供</td></tr>
|
||||
<li><a href="../howto/cgi.html">CGI による動的コンテンツ</a></li>
|
||||
<li><a href="../handler.html">Apache のハンドラの使用</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="Action" id="Action">Action</a> <a name="action" id="action">ディレクティブ</a></h2>
|
||||
<table class="directive">
|
||||
@@ -169,6 +168,7 @@ Apache 2.1 で導入されました</td></tr>
|
||||
</code></p></div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>翻訳済み言語: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
|
||||
|
||||
@@ -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"> de </a> |
|
||||
|
||||
@@ -86,47 +86,6 @@
|
||||
<li><a href="../urlmapping.html">Mapping URLs to the filesystem</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="order" id="order">Order of Processing</a></h2>
|
||||
|
||||
<p>Aliases and Redirects occurring in different contexts are processed
|
||||
like other directives according to standard <a href="../sections.html#mergin">merging rules</a>. But when multiple
|
||||
Aliases or Redirects occur in the same context (for example, in the
|
||||
same <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>
|
||||
section) they are processed in a particular order.</p>
|
||||
|
||||
<p>First, all Redirects are processed before Aliases are processed,
|
||||
and therefore a request that matches a <code class="directive"><a href="#redirect">Redirect</a></code> or <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code> will never have Aliases
|
||||
applied. Second, the Aliases and Redirects are processed in the order
|
||||
they appear in the configuration files, with the first match taking
|
||||
precedence.</p>
|
||||
|
||||
<p>For this reason, when two or more of these directives apply to the
|
||||
same sub-path, you must list the most specific path first in order for
|
||||
all the directives to have an effect. For example, the following
|
||||
configuration will work as expected:</p>
|
||||
|
||||
<pre class="prettyprint lang-config">Alias /foo/bar /baz
|
||||
Alias /foo /gaq</pre>
|
||||
|
||||
|
||||
<p>But if the above two directives were reversed in order, the
|
||||
<code>/foo</code> <code class="directive"><a href="#alias">Alias</a></code>
|
||||
would always match before the <code>/foo/bar</code> <code class="directive"><a href="#alias">Alias</a></code>, so the latter directive would be
|
||||
ignored.</p>
|
||||
|
||||
<p>When the <code class="directive"><a href="#alias">Alias</a></code>,
|
||||
<code class="directive"><a href="#scriptalias">ScriptAlias</a></code> and
|
||||
<code class="directive"><a href="#redirect">Redirect</a></code> directives are used
|
||||
within a <code class="directive"><a href="../mod/core.html#location"><Location></a></code>
|
||||
or <code class="directive"><a href="../mod/core.html#locationmatch"><LocationMatch></a></code>
|
||||
section, these directives will take precedence over any globally
|
||||
defined <code class="directive"><a href="#alias">Alias</a></code>,
|
||||
<code class="directive"><a href="#scriptalias">ScriptAlias</a></code> and
|
||||
<code class="directive"><a href="#redirect">Redirect</a></code> directives.</p>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="Alias" id="Alias">Alias</a> <a name="alias" id="alias">Directive</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maps URLs to filesystem locations</td></tr>
|
||||
@@ -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"><VirtualHost></a></code>
|
||||
section) they are processed in a particular order.</p>
|
||||
|
||||
<p>First, all Redirects are processed before Aliases are processed,
|
||||
and therefore a request that matches a <code class="directive"><a href="#redirect">Redirect</a></code> or <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code> will never have Aliases
|
||||
applied. Second, the Aliases and Redirects are processed in the order
|
||||
they appear in the configuration files, with the first match taking
|
||||
precedence.</p>
|
||||
|
||||
<p>For this reason, when two or more of these directives apply to the
|
||||
same sub-path, you must list the most specific path first in order for
|
||||
all the directives to have an effect. For example, the following
|
||||
configuration will work as expected:</p>
|
||||
|
||||
<pre class="prettyprint lang-config">Alias /foo/bar /baz
|
||||
Alias /foo /gaq</pre>
|
||||
|
||||
|
||||
<p>But if the above two directives were reversed in order, the
|
||||
<code>/foo</code> <code class="directive"><a href="#alias">Alias</a></code>
|
||||
would always match before the <code>/foo/bar</code> <code class="directive"><a href="#alias">Alias</a></code>, so the latter directive would be
|
||||
ignored.</p>
|
||||
|
||||
<p>When the <code class="directive"><a href="#alias">Alias</a></code>,
|
||||
<code class="directive"><a href="#scriptalias">ScriptAlias</a></code> and
|
||||
<code class="directive"><a href="#redirect">Redirect</a></code> directives are used
|
||||
within a <code class="directive"><a href="../mod/core.html#location"><Location></a></code>
|
||||
or <code class="directive"><a href="../mod/core.html#locationmatch"><LocationMatch></a></code>
|
||||
section, these directives will take precedence over any globally
|
||||
defined <code class="directive"><a href="#alias">Alias</a></code>,
|
||||
<code class="directive"><a href="#scriptalias">ScriptAlias</a></code> and
|
||||
<code class="directive"><a href="#redirect">Redirect</a></code> directives.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
|
||||
@@ -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"><VirtualHost></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"><Location></a></code> ou
|
||||
<code class="directive"><a href="../mod/core.html#locationmatch"><LocationMatch></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"><VirtualHost></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"><Location></a></code> ou
|
||||
<code class="directive"><a href="../mod/core.html#locationmatch"><LocationMatch></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">
|
||||
|
||||
@@ -84,34 +84,6 @@
|
||||
<li><a href="../urlmapping.html">URL からファイルシステム上の位置へのマッピング</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="order" id="order">処理の順番</a></h2>
|
||||
|
||||
<p>様々なコンテキスト中での Alias や Redirect は他のディレクティブと
|
||||
同じように標準の <a href="../sections.html#mergin">マージ規則</a> に
|
||||
従って処理されます。ただし、(例えば <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> セクションの中のように) 複数の Alias や Redirect が
|
||||
同じコンテキスト中に現れた場合は決まった順番で処理されます。</p>
|
||||
|
||||
<p>まず、Alias の前にすべての Redirect が処理されます。ですから、<code class="directive"><a href="#redirect">Redirect</a></code> か <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code> にマッチするリクエストには
|
||||
Alias は決して適用されません。次に、Alias と Redirect が設定ファイル中の
|
||||
順番に適用され、最初にマッチしたものが優先されます。</p>
|
||||
|
||||
<p>ですから、二つ以上のディレクティブが同じパスに適用されるときは、
|
||||
すべてのディレクティブの効果を得るためにはより詳しいパスを先に書く
|
||||
必要があります。例えば、次の設定は期待通りの動作をします:</p>
|
||||
|
||||
<div class="example"><p><code>
|
||||
Alias /foo/bar /baz<br />
|
||||
Alias /foo /gaq
|
||||
</code></p></div>
|
||||
|
||||
<p>しかし、上記の二つのディレクティブの順番が逆になると、
|
||||
<code>/foo</code> <code class="directive"><a href="#alias">Alias</a></code> が
|
||||
常に <code>/foo/bar</code> <code class="directive"><a href="#alias">Alias</a></code> より先にマッチしますので、後者は
|
||||
決して適用されることはありません。</p>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="Alias" id="Alias">Alias</a> <a name="alias" id="alias">ディレクティブ</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>URL をファイルシステムの位置にマップする</td></tr>
|
||||
@@ -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"><VirtualHost></a></code> セクションの中のように) 複数の Alias や Redirect が
|
||||
同じコンテキスト中に現れた場合は決まった順番で処理されます。</p>
|
||||
|
||||
<p>まず、Alias の前にすべての Redirect が処理されます。ですから、<code class="directive"><a href="#redirect">Redirect</a></code> か <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code> にマッチするリクエストには
|
||||
Alias は決して適用されません。次に、Alias と Redirect が設定ファイル中の
|
||||
順番に適用され、最初にマッチしたものが優先されます。</p>
|
||||
|
||||
<p>ですから、二つ以上のディレクティブが同じパスに適用されるときは、
|
||||
すべてのディレクティブの効果を得るためにはより詳しいパスを先に書く
|
||||
必要があります。例えば、次の設定は期待通りの動作をします:</p>
|
||||
|
||||
<div class="example"><p><code>
|
||||
Alias /foo/bar /baz<br />
|
||||
Alias /foo /gaq
|
||||
</code></p></div>
|
||||
|
||||
<p>しかし、上記の二つのディレクティブの順番が逆になると、
|
||||
<code>/foo</code> <code class="directive"><a href="#alias">Alias</a></code> が
|
||||
常に <code>/foo/bar</code> <code class="directive"><a href="#alias">Alias</a></code> より先にマッチしますので、後者は
|
||||
決して適用されることはありません。</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
|
||||
@@ -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"><VirtualHost></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"><VirtualHost></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">
|
||||
|
||||
@@ -76,40 +76,6 @@ eşlenmesini sağlar ve URL yönlendirmesi yapar.</td></tr>
|
||||
</li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="order" id="order">İşlem Sırası</a></h2>
|
||||
|
||||
<p>Farklı bağlamlarda bulunan <code class="directive"><a href="#alias">Alias</a></code> ve <code class="directive"><a href="#redirect">Redirect</a></code>
|
||||
yönergeleri standart <a href="../sections.html#mergin">katıştırma
|
||||
kuralları</a> ile ilgili diğer yönergeler gibi işleme sokulur. Fakat
|
||||
aynı bağlam dahilinde (örneğin, aynı <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> bölümünde) çok fazla <code class="directive"><a href="#alias">Alias</a></code> ve <code class="directive"><a href="#redirect">Redirect</a></code> varsa bunlar belli bir
|
||||
sıraya göre işleme sokulurlar.</p>
|
||||
|
||||
<p>İlk adımda, <code class="directive"><a href="#alias">Alias</a></code>’lardan önce
|
||||
bütün <code class="directive"><a href="#redirect">Redirect</a></code> yönergeleri
|
||||
işleme sokulur. Bu bakımdan bir <code class="directive"><a href="#redirect">Redirect</a></code> veya <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code> ile eşleşen bir istek için
|
||||
hiçbir <code class="directive"><a href="#alias">Alias</a></code>
|
||||
uygulanmayacaktır. İkinci adımda yapılandırma dosyasında yer aldıkları
|
||||
sıraya göre <code class="directive"><a href="#redirect">Redirect</a></code> ve
|
||||
<code class="directive"><a href="#alias">Alias</a></code> yönergeleri işleme
|
||||
sokulurlar, dolayısıyla ilk eşleşme öncelikli olmuş olur.</p>
|
||||
|
||||
<p>İlk eşleşmenin öncelikli olması sebebiyle, bu yönergelerin birden
|
||||
fazlası aynı alt yola uygulandığı takdirde, tüm yönergelerin etkili
|
||||
olabilmesi için en uzun yolu sıralamada en öne almalısınız. Örneğin
|
||||
aşağıdaki yapılandırma beklendiği gibi çalışacaktır:</p>
|
||||
|
||||
<div class="example"><p><code>
|
||||
Alias /foo/bar /baz<br />
|
||||
Alias /foo /gaz
|
||||
</code></p></div>
|
||||
|
||||
<p>Ama yukarıdaki iki satır ters sırada yerleştirilmiş olsaydı,
|
||||
<code>/foo</code> rumuzu daima <code>/foo/bar</code> rumuzundan önce
|
||||
eşleşecek, dolayısıyla ikinci yönerge yok sayılacaktı.</p>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="Alias" id="Alias">Alias</a> <a name="alias" id="alias">Yönergesi</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>URL’leri dosya sistemi konumlarıyla eşler.</td></tr>
|
||||
@@ -527,6 +493,40 @@ eşler ve hedefi bir CGI betiği olarak çalıştırır.</td></tr>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="order" id="order">İşlem Sırası</a></h2>
|
||||
|
||||
<p>Farklı bağlamlarda bulunan <code class="directive"><a href="#alias">Alias</a></code> ve <code class="directive"><a href="#redirect">Redirect</a></code>
|
||||
yönergeleri standart <a href="../sections.html#mergin">katıştırma
|
||||
kuralları</a> ile ilgili diğer yönergeler gibi işleme sokulur. Fakat
|
||||
aynı bağlam dahilinde (örneğin, aynı <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> bölümünde) çok fazla <code class="directive"><a href="#alias">Alias</a></code> ve <code class="directive"><a href="#redirect">Redirect</a></code> varsa bunlar belli bir
|
||||
sıraya göre işleme sokulurlar.</p>
|
||||
|
||||
<p>İlk adımda, <code class="directive"><a href="#alias">Alias</a></code>’lardan önce
|
||||
bütün <code class="directive"><a href="#redirect">Redirect</a></code> yönergeleri
|
||||
işleme sokulur. Bu bakımdan bir <code class="directive"><a href="#redirect">Redirect</a></code> veya <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code> ile eşleşen bir istek için
|
||||
hiçbir <code class="directive"><a href="#alias">Alias</a></code>
|
||||
uygulanmayacaktır. İkinci adımda yapılandırma dosyasında yer aldıkları
|
||||
sıraya göre <code class="directive"><a href="#redirect">Redirect</a></code> ve
|
||||
<code class="directive"><a href="#alias">Alias</a></code> yönergeleri işleme
|
||||
sokulurlar, dolayısıyla ilk eşleşme öncelikli olmuş olur.</p>
|
||||
|
||||
<p>İlk eşleşmenin öncelikli olması sebebiyle, bu yönergelerin birden
|
||||
fazlası aynı alt yola uygulandığı takdirde, tüm yönergelerin etkili
|
||||
olabilmesi için en uzun yolu sıralamada en öne almalısınız. Örneğin
|
||||
aşağıdaki yapılandırma beklendiği gibi çalışacaktır:</p>
|
||||
|
||||
<div class="example"><p><code>
|
||||
Alias /foo/bar /baz<br />
|
||||
Alias /foo /gaz
|
||||
</code></p></div>
|
||||
|
||||
<p>Ama yukarıdaki iki satır ters sırada yerleştirilmiş olsaydı,
|
||||
<code>/foo</code> rumuzu daima <code>/foo/bar</code> rumuzundan önce
|
||||
eşleşecek, dolayısıyla ikinci yönerge yok sayılacaktı.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>Mevcut Diller: </span><a href="../en/mod/mod_alias.html" hreflang="en" rel="alternate" title="English"> en </a> |
|
||||
|
||||
@@ -54,7 +54,6 @@ returns 403 FORBIDDEN to the client. This can be used with directives like
|
||||
<li><code class="directive"><a href="../mod/core.html#sethandler">SetHandler</a></code></li>
|
||||
<li><code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AllowHandlers" id="AllowHandlers">AllowHandlers</a> <a name="allowhandlers" id="allowhandlers">Directive</a></h2>
|
||||
<table class="directive">
|
||||
@@ -81,6 +80,7 @@ earlier in the configuration merge order:</p>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>Available Languages: </span><a href="../en/mod/mod_allowhandlers.html" title="English"> en </a></p>
|
||||
|
||||
@@ -47,7 +47,6 @@ used on an server. The most common configuration would be:</p>
|
||||
<li><img alt="" src="../images/down.gif" /> <a href="#allowmethods">AllowMethods</a></li>
|
||||
</ul>
|
||||
<ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AllowMethods" id="AllowMethods">AllowMethods</a> <a name="allowmethods" id="allowmethods">Directive</a></h2>
|
||||
<table class="directive">
|
||||
@@ -80,6 +79,7 @@ kludgy implementation of <code class="directive"><a href="../mod/core.html#limit
|
||||
<code class="directive"><a href="../mod/core.html#limitexcept">LimitExcept</a></code>.</p>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>Available Languages: </span><a href="../en/mod/mod_allowmethods.html" title="English"> en </a> |
|
||||
|
||||
@@ -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"> en </a> |
|
||||
|
||||
@@ -57,7 +57,6 @@
|
||||
<li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li>
|
||||
<li><a href="../howto/auth.html">Authentication howto</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AuthBasicAuthoritative" id="AuthBasicAuthoritative">AuthBasicAuthoritative</a> <a name="authbasicauthoritative" id="authbasicauthoritative">Directive</a></h2>
|
||||
<table class="directive">
|
||||
@@ -252,6 +251,7 @@ Digest Authentication was in force instead of Basic Authentication.
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>Available Languages: </span><a href="../en/mod/mod_auth_basic.html" title="English"> en </a> |
|
||||
|
||||
@@ -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"> en </a> |
|
||||
|
||||
@@ -66,7 +66,6 @@
|
||||
<li><code class="directive"><a href="../mod/mod_authz_core.html#<satisfyone>"><SatisfyOne></a></code></li>
|
||||
<li><a href="../howto/auth.html">Authentication howto</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AuthBasicAuthoritative" id="AuthBasicAuthoritative">AuthBasicAuthoritative</a> <a name="authbasicauthoritative" id="authbasicauthoritative">ディレクティブ</a></h2>
|
||||
<table class="directive">
|
||||
@@ -163,6 +162,7 @@ Digest Authentication was in force instead of Basic Authentication.
|
||||
</table><p>このディレクティブの解説文書は
|
||||
まだ翻訳されていません。英語版をご覧ください。
|
||||
</p></div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>翻訳済み言語: </span><a href="../en/mod/mod_auth_basic.html" hreflang="en" rel="alternate" title="English"> en </a> |
|
||||
|
||||
@@ -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"> en </a> |
|
||||
|
||||
@@ -68,48 +68,6 @@
|
||||
<li><a href="../howto/auth.html">Authentication howto</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="using" id="using">Using Digest Authentication</a></h2>
|
||||
|
||||
<p>To use MD5 Digest authentication, simply
|
||||
change the normal <code>AuthType Basic</code> and
|
||||
<code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>
|
||||
to <code>AuthType Digest</code> and
|
||||
<code class="directive"><a href="#authdigestprovider">AuthDigestProvider</a></code>,
|
||||
when setting up authentication, then add a
|
||||
<code class="directive"><a href="#authdigestdomain">AuthDigestDomain</a></code> directive containing at least the root
|
||||
URI(s) for this protection space.</p>
|
||||
|
||||
<p>Appropriate user (text) files can be created using the
|
||||
<code class="program"><a href="../programs/htdigest.html">htdigest</a></code> tool.</p>
|
||||
|
||||
<div class="example"><h3>Example:</h3><pre class="prettyprint lang-config"><Location "/private/">
|
||||
AuthType Digest
|
||||
AuthName "private area"
|
||||
AuthDigestDomain "/private/" "http://mirror.my.dom/private2/"
|
||||
|
||||
AuthDigestProvider file
|
||||
AuthUserFile "/web/auth/.digest_pw"
|
||||
Require valid-user
|
||||
</Location></pre>
|
||||
</div>
|
||||
|
||||
<div class="note"><h3>Note</h3>
|
||||
<p>Digest authentication was intended to be more secure than basic
|
||||
authentication, but no longer fulfills that design goal. A
|
||||
man-in-the-middle attacker can trivially force the browser to downgrade
|
||||
to basic authentication. And even a passive eavesdropper can brute-force
|
||||
the password using today's graphics hardware, because the hashing
|
||||
algorithm used by digest authentication is too fast. Another problem is
|
||||
that the storage of the passwords on the server is insecure. The contents
|
||||
of a stolen htdigest file can be used directly for digest authentication.
|
||||
Therefore using <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> to encrypt the whole connection is
|
||||
strongly recommended.</p>
|
||||
<p><code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code> only works properly on platforms
|
||||
where APR supports shared memory.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AuthDigestAlgorithm" id="AuthDigestAlgorithm">AuthDigestAlgorithm</a> <a name="authdigestalgorithm" id="authdigestalgorithm">Directive</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Selects the algorithm used to calculate the challenge and
|
||||
@@ -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"><Location "/private/">
|
||||
AuthType Digest
|
||||
AuthName "private area"
|
||||
AuthDigestDomain "/private/" "http://mirror.my.dom/private2/"
|
||||
|
||||
AuthDigestProvider file
|
||||
AuthUserFile "/web/auth/.digest_pw"
|
||||
Require valid-user
|
||||
</Location></pre>
|
||||
</div>
|
||||
|
||||
<div class="note"><h3>Note</h3>
|
||||
<p>Digest authentication was intended to be more secure than basic
|
||||
authentication, but no longer fulfills that design goal. A
|
||||
man-in-the-middle attacker can trivially force the browser to downgrade
|
||||
to basic authentication. And even a passive eavesdropper can brute-force
|
||||
the password using today's graphics hardware, because the hashing
|
||||
algorithm used by digest authentication is too fast. Another problem is
|
||||
that the storage of the passwords on the server is insecure. The contents
|
||||
of a stolen htdigest file can be used directly for digest authentication.
|
||||
Therefore using <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> to encrypt the whole connection is
|
||||
strongly recommended.</p>
|
||||
<p><code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code> only works properly on platforms
|
||||
where APR supports shared memory.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
|
||||
@@ -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"><Location /private/>
|
||||
AuthType Digest
|
||||
AuthName "private area"
|
||||
AuthDigestDomain /private/ http://mirror.my.dom/private2/
|
||||
|
||||
AuthDigestProvider file
|
||||
AuthUserFile /web/auth/.digest_pw
|
||||
Require valid-user
|
||||
</Location></pre>
|
||||
</div>
|
||||
|
||||
<div class="note"><h3>Note</h3>
|
||||
<p>L'authentification <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"><Location /private/>
|
||||
AuthType Digest
|
||||
AuthName "private area"
|
||||
AuthDigestDomain /private/ http://mirror.my.dom/private2/
|
||||
|
||||
AuthDigestProvider file
|
||||
AuthUserFile /web/auth/.digest_pw
|
||||
Require valid-user
|
||||
</Location></pre>
|
||||
</div>
|
||||
|
||||
<div class="note"><h3>Note</h3>
|
||||
<p>L'authentification <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">
|
||||
|
||||
@@ -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>
|
||||
<Location /private/><br />
|
||||
<span class="indent">
|
||||
AuthType Digest<br />
|
||||
AuthName "private area"<br />
|
||||
AuthDigestDomain /private/ http://mirror.my.dom/private2/<br />
|
||||
<br />
|
||||
AuthDigestProvider file<br />
|
||||
AuthUserFile /web/auth/.digest_pw<br />
|
||||
Require valid-user<br />
|
||||
</span>
|
||||
</Location>
|
||||
</code></p></div>
|
||||
|
||||
<div class="note"><h3><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>
|
||||
<Location /private/><br />
|
||||
<span class="indent">
|
||||
AuthType Digest<br />
|
||||
AuthName "private area"<br />
|
||||
AuthDigestDomain /private/ http://mirror.my.dom/private2/<br />
|
||||
<br />
|
||||
AuthDigestProvider file<br />
|
||||
AuthUserFile /web/auth/.digest_pw<br />
|
||||
Require valid-user<br />
|
||||
</span>
|
||||
</Location>
|
||||
</code></p></div>
|
||||
|
||||
<div class="note"><h3><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"> en </a> |
|
||||
|
||||
@@ -96,253 +96,6 @@
|
||||
<li><a href="../howto/auth.html">Authentication howto</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="basicconfig" id="basicconfig">Basic Configuration</a></h2>
|
||||
|
||||
<p>To protect a particular URL with <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, you need to
|
||||
decide where you will store your <var>session</var>, and you will need to
|
||||
decide what method you will use to authenticate. In this simple example, the
|
||||
login details will be stored in a session based on
|
||||
<code class="module"><a href="../mod/mod_session_cookie.html">mod_session_cookie</a></code>, and authentication will be attempted against
|
||||
a file using <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>. If authentication is unsuccessful,
|
||||
the user will be redirected to the form login page.</p>
|
||||
|
||||
<div class="example"><h3>Basic example</h3><pre class="prettyprint lang-config">AuthFormProvider file
|
||||
AuthUserFile "conf/passwd"
|
||||
AuthType form
|
||||
AuthName realm
|
||||
AuthFormLoginRequiredLocation "http://example.com/login.html"
|
||||
Session On
|
||||
SessionCookieName session path=/
|
||||
SessionCryptoPassphrase secret</pre>
|
||||
</div>
|
||||
|
||||
<p>The directive <code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code> will enable
|
||||
the <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> authentication when set to the value <var>form</var>.
|
||||
The directives <code class="directive"><a href="#authformprovider">AuthFormProvider</a></code> and
|
||||
<code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> specify that usernames
|
||||
and passwords should be checked against the chosen file.</p>
|
||||
|
||||
<p>The directives <code class="directive"><a href="../mod/mod_session.html#session">Session</a></code>,
|
||||
<code class="directive"><a href="../mod/mod_session_cookie.html#sessioncookiename">SessionCookieName</a></code> and
|
||||
<code class="directive"><a href="../mod/mod_session_crypto.html#sessioncryptopassphrase">SessionCryptoPassphrase</a></code> create an
|
||||
encrypted session stored within an HTTP cookie on the browser. For more information
|
||||
on the different options for configuring a session, read the documentation for
|
||||
<code class="module"><a href="../mod/mod_session.html">mod_session</a></code>.</p>
|
||||
|
||||
<p>In the simple example above, a URL has been protected by
|
||||
<code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, but the user has yet to be given an opportunity to
|
||||
enter their username and password. Options for doing so include providing a
|
||||
dedicated standalone login page for this purpose, or for providing the login
|
||||
page inline.</p>
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="standalone" id="standalone">Standalone Login</a></h2>
|
||||
|
||||
<p>The login form can be hosted as a standalone page, or can be provided inline on
|
||||
the same page.</p>
|
||||
|
||||
<p>When configuring the login as a standalone page, unsuccessful authentication
|
||||
attempts should be redirected to a login form created by the website for this purpose,
|
||||
using the <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code>
|
||||
directive. Typically this login page will contain an HTML form, asking the user to
|
||||
provide their usename and password.</p>
|
||||
|
||||
<div class="example"><h3>Example login form</h3><pre class="prettyprint lang-html"><form method="POST" action="/dologin.html">
|
||||
Username: <input type="text" name="httpd_username" value="" />
|
||||
Password: <input type="password" name="httpd_password" value="" />
|
||||
<input type="submit" name="login" value="Login" />
|
||||
</form></pre>
|
||||
</div>
|
||||
|
||||
<p>The part that does the actual login is handled by the <var>form-login-handler</var>.
|
||||
The action of the form should point at this handler, which is configured within
|
||||
Apache httpd as follows:</p>
|
||||
|
||||
<div class="example"><h3>Form login handler example</h3><pre class="prettyprint lang-config"><Location "/dologin.html">
|
||||
SetHandler form-login-handler
|
||||
AuthFormLoginRequiredLocation "http://example.com/login.html"
|
||||
AuthFormLoginSuccessLocation "http://example.com/success.html"
|
||||
AuthFormProvider file
|
||||
AuthUserFile "conf/passwd"
|
||||
AuthType form
|
||||
AuthName realm
|
||||
Session On
|
||||
SessionCookieName session path=/
|
||||
SessionCryptoPassphrase secret
|
||||
</Location></pre>
|
||||
</div>
|
||||
|
||||
<p>The URLs specified by the
|
||||
<code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code> directive will typically
|
||||
point to a page explaining to the user that their login attempt was unsuccessful, and they
|
||||
should try again. The <code class="directive"><a href="#authformloginsuccesslocation">AuthFormLoginSuccessLocation</a></code>
|
||||
directive specifies the URL the user should be redirected to upon successful login.</p>
|
||||
|
||||
<p>Alternatively, the URL to redirect the user to on success can be embedded within the login
|
||||
form, as in the example below. As a result, the same <var>form-login-handler</var> can be
|
||||
reused for different areas of a website.</p>
|
||||
|
||||
<div class="example"><h3>Example login form with location</h3><pre class="prettyprint lang-html"><form method="POST" action="/dologin.html">
|
||||
Username: <input type="text" name="httpd_username" value="" />
|
||||
Password: <input type="password" name="httpd_password" value="" />
|
||||
<input type="submit" name="login" value="Login" />
|
||||
<input type="hidden" name="httpd_location" value="http://example.com/success.html" />
|
||||
</form></pre>
|
||||
</div>
|
||||
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="inline" id="inline">Inline Login</a></h2>
|
||||
|
||||
<div class="warning"><h3>Warning</h3>
|
||||
<p>A risk exists that under certain circumstances, the login form configured
|
||||
using inline login may be submitted more than once, revealing login credentials to
|
||||
the application running underneath. The administrator must ensure that the underlying
|
||||
application is properly secured to prevent abuse. If in doubt, use the
|
||||
standalone login configuration.</p>
|
||||
</div>
|
||||
|
||||
<p>As an alternative to having a dedicated login page for a website, it is possible to
|
||||
configure <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> to authenticate users inline, without being
|
||||
redirected to another page. This allows the state of the current page to be preserved
|
||||
during the login attempt. This can be useful in a situation where a time limited
|
||||
session is in force, and the session times out in the middle of the user request. The
|
||||
user can be re-authenticated in place, and they can continue where they left off.</p>
|
||||
|
||||
<p>If a non-authenticated user attempts to access a page protected by
|
||||
<code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> that isn't configured with a
|
||||
<code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code> directive,
|
||||
a <var>HTTP_UNAUTHORIZED</var> status code is returned to the browser indicating to the user
|
||||
that they are not authorized to view the page.</p>
|
||||
|
||||
<p>To configure inline authentication, the administrator overrides the error document
|
||||
returned by the <var>HTTP_UNAUTHORIZED</var> status code with a custom error document
|
||||
containing the login form, as follows:</p>
|
||||
|
||||
<div class="example"><h3>Basic inline example</h3><pre class="prettyprint lang-config">AuthFormProvider file
|
||||
ErrorDocument 401 "/login.shtml"
|
||||
AuthUserFile "conf/passwd"
|
||||
AuthType form
|
||||
AuthName realm
|
||||
AuthFormLoginRequiredLocation "http://example.com/login.html"
|
||||
Session On
|
||||
SessionCookieName session path=/
|
||||
SessionCryptoPassphrase secret</pre>
|
||||
</div>
|
||||
|
||||
<p>The error document page should contain a login form with an empty action property,
|
||||
as per the example below. This has the effect of submitting the form to
|
||||
the original protected URL, without the page having to know what that
|
||||
URL is.</p>
|
||||
|
||||
<div class="example"><h3>Example inline login form</h3><pre class="prettyprint lang-html"><form method="POST" <strong>action=""</strong>>
|
||||
Username: <input type="text" name="httpd_username" value="" />
|
||||
Password: <input type="password" name="httpd_password" value="" />
|
||||
<input type="submit" name="login" value="Login" />
|
||||
</form></pre>
|
||||
</div>
|
||||
|
||||
<p>When the end user has filled in their login details, the form will make
|
||||
an HTTP POST request to the original password protected URL.
|
||||
<code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> will intercept this POST request, and if
|
||||
HTML fields are found present for the username and password, the user
|
||||
will be logged in, and the original password protected URL will be returned
|
||||
to the user as a GET request.</p>
|
||||
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="inlinepreservebody" id="inlinepreservebody">Inline Login with Body Preservation</a></h2>
|
||||
|
||||
<p>A limitation of the inline login technique described above is that should an
|
||||
HTML form POST have resulted in the request to authenticate or
|
||||
reauthenticate, the
|
||||
contents of the original form posted by the browser will be lost. Depending on
|
||||
the function of the website, this could present significant inconvenience for the
|
||||
end user.</p>
|
||||
|
||||
<p><code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> addresses this by allowing the method and body
|
||||
of the original request to be embedded in the login form. If authentication
|
||||
is successful, the original method and body will be retried by Apache httpd, preserving
|
||||
the state of the original request.</p>
|
||||
|
||||
<p>To enable body preservation, add three additional fields to the login form as
|
||||
per the example below.</p>
|
||||
|
||||
<div class="example"><h3>Example with body preservation</h3><pre class="prettyprint lang-html"><form method="POST" action="">
|
||||
Username: <input type="text" name="httpd_username" value="" />
|
||||
Password: <input type="password" name="httpd_password" value="" />
|
||||
<input type="submit" name="login" value="Login" />
|
||||
<br /> <strong><input type="hidden" name="httpd_method" value="POST" />
|
||||
<input type="hidden" name="httpd_mimetype" value="application/x-www-form-urlencoded" />
|
||||
<input type="hidden" name="httpd_body" value="name1=value1&name2=value2" /></strong><br />
|
||||
</form></pre>
|
||||
</div>
|
||||
|
||||
<p>How the method, mimetype and body of the original request are embedded within the
|
||||
login form will depend on the platform and technology being used within the website.
|
||||
</p>
|
||||
|
||||
<p>One option is to use the <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> module along with the
|
||||
<code class="directive"><a href="../mod/mod_request.html#keptbodysize">KeptBodySize</a></code> directive, along with a suitable
|
||||
CGI script to embed the variables in the form.</p>
|
||||
|
||||
<p>Another option is to render the login form using a CGI script or other dynamic
|
||||
technology.</p>
|
||||
|
||||
<div class="example"><h3>CGI example</h3><pre class="prettyprint lang-config"> AuthFormProvider file
|
||||
ErrorDocument 401 "/cgi-bin/login.cgi"
|
||||
...</pre>
|
||||
</div>
|
||||
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="loggingout" id="loggingout">Logging Out</a></h2>
|
||||
|
||||
<p>To enable a user to log out of a particular session, configure a page to
|
||||
be handled by the <var>form-logout-handler</var>. Any attempt to access this
|
||||
URL will cause the username and password to be removed from the current
|
||||
session, effectively logging the user out.</p>
|
||||
|
||||
<p>By setting the
|
||||
<code class="directive"><a href="#authformlogoutlocation">AuthFormLogoutLocation</a></code> directive,
|
||||
a URL can be specified that the browser will be redirected to on successful
|
||||
logout. This URL might explain to the user that they have been logged out, and
|
||||
give the user the option to log in again.</p>
|
||||
|
||||
<div class="example"><h3>Basic logout example</h3><pre class="prettyprint lang-config">SetHandler form-logout-handler
|
||||
AuthName realm
|
||||
AuthFormLogoutLocation "http://example.com/loggedout.html"
|
||||
Session On
|
||||
SessionCookieName session path=/
|
||||
SessionCryptoPassphrase secret</pre>
|
||||
</div>
|
||||
|
||||
<p>Note that logging a user out does not delete the session; it merely removes
|
||||
the username and password from the session. If this results in an empty session,
|
||||
the net effect will be the removal of that session, but this is not
|
||||
guaranteed. If you want to guarantee the removal of a session, set the
|
||||
<code class="directive"><a href="../mod/mod_session.html#sessionmaxage">SessionMaxAge</a></code> directive to a small
|
||||
value, like 1 (setting the directive to zero would mean no session age limit).
|
||||
</p>
|
||||
|
||||
<div class="example"><h3>Basic session expiry example</h3><pre class="prettyprint lang-config">SetHandler form-logout-handler
|
||||
AuthFormLogoutLocation "http://example.com/loggedout.html"
|
||||
Session On
|
||||
SessionMaxAge 1
|
||||
SessionCookieName session path=/
|
||||
SessionCryptoPassphrase secret</pre>
|
||||
</div>
|
||||
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="urlencoding" id="urlencoding">Usernames and Passwords</a></h2>
|
||||
<p>Note that form submission involves URLEncoding the form data:
|
||||
in this case the username and password. You should therefore
|
||||
pick usernames and passwords that avoid characters that are
|
||||
URLencoded in form submission, or you may get unexpected results.</p>
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AuthFormAuthoritative" id="AuthFormAuthoritative">AuthFormAuthoritative</a> <a name="authformauthoritative" id="authformauthoritative">Directive</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets whether authorization and authentication are passed to
|
||||
@@ -698,6 +451,253 @@ parser has been added in 2.4.4.</td></tr>
|
||||
in.</p>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="basicconfig" id="basicconfig">Basic Configuration</a></h2>
|
||||
|
||||
<p>To protect a particular URL with <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, you need to
|
||||
decide where you will store your <var>session</var>, and you will need to
|
||||
decide what method you will use to authenticate. In this simple example, the
|
||||
login details will be stored in a session based on
|
||||
<code class="module"><a href="../mod/mod_session_cookie.html">mod_session_cookie</a></code>, and authentication will be attempted against
|
||||
a file using <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>. If authentication is unsuccessful,
|
||||
the user will be redirected to the form login page.</p>
|
||||
|
||||
<div class="example"><h3>Basic example</h3><pre class="prettyprint lang-config">AuthFormProvider file
|
||||
AuthUserFile "conf/passwd"
|
||||
AuthType form
|
||||
AuthName realm
|
||||
AuthFormLoginRequiredLocation "http://example.com/login.html"
|
||||
Session On
|
||||
SessionCookieName session path=/
|
||||
SessionCryptoPassphrase secret</pre>
|
||||
</div>
|
||||
|
||||
<p>The directive <code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code> will enable
|
||||
the <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> authentication when set to the value <var>form</var>.
|
||||
The directives <code class="directive"><a href="#authformprovider">AuthFormProvider</a></code> and
|
||||
<code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> specify that usernames
|
||||
and passwords should be checked against the chosen file.</p>
|
||||
|
||||
<p>The directives <code class="directive"><a href="../mod/mod_session.html#session">Session</a></code>,
|
||||
<code class="directive"><a href="../mod/mod_session_cookie.html#sessioncookiename">SessionCookieName</a></code> and
|
||||
<code class="directive"><a href="../mod/mod_session_crypto.html#sessioncryptopassphrase">SessionCryptoPassphrase</a></code> create an
|
||||
encrypted session stored within an HTTP cookie on the browser. For more information
|
||||
on the different options for configuring a session, read the documentation for
|
||||
<code class="module"><a href="../mod/mod_session.html">mod_session</a></code>.</p>
|
||||
|
||||
<p>In the simple example above, a URL has been protected by
|
||||
<code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, but the user has yet to be given an opportunity to
|
||||
enter their username and password. Options for doing so include providing a
|
||||
dedicated standalone login page for this purpose, or for providing the login
|
||||
page inline.</p>
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="standalone" id="standalone">Standalone Login</a></h2>
|
||||
|
||||
<p>The login form can be hosted as a standalone page, or can be provided inline on
|
||||
the same page.</p>
|
||||
|
||||
<p>When configuring the login as a standalone page, unsuccessful authentication
|
||||
attempts should be redirected to a login form created by the website for this purpose,
|
||||
using the <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code>
|
||||
directive. Typically this login page will contain an HTML form, asking the user to
|
||||
provide their usename and password.</p>
|
||||
|
||||
<div class="example"><h3>Example login form</h3><pre class="prettyprint lang-html"><form method="POST" action="/dologin.html">
|
||||
Username: <input type="text" name="httpd_username" value="" />
|
||||
Password: <input type="password" name="httpd_password" value="" />
|
||||
<input type="submit" name="login" value="Login" />
|
||||
</form></pre>
|
||||
</div>
|
||||
|
||||
<p>The part that does the actual login is handled by the <var>form-login-handler</var>.
|
||||
The action of the form should point at this handler, which is configured within
|
||||
Apache httpd as follows:</p>
|
||||
|
||||
<div class="example"><h3>Form login handler example</h3><pre class="prettyprint lang-config"><Location "/dologin.html">
|
||||
SetHandler form-login-handler
|
||||
AuthFormLoginRequiredLocation "http://example.com/login.html"
|
||||
AuthFormLoginSuccessLocation "http://example.com/success.html"
|
||||
AuthFormProvider file
|
||||
AuthUserFile "conf/passwd"
|
||||
AuthType form
|
||||
AuthName realm
|
||||
Session On
|
||||
SessionCookieName session path=/
|
||||
SessionCryptoPassphrase secret
|
||||
</Location></pre>
|
||||
</div>
|
||||
|
||||
<p>The URLs specified by the
|
||||
<code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code> directive will typically
|
||||
point to a page explaining to the user that their login attempt was unsuccessful, and they
|
||||
should try again. The <code class="directive"><a href="#authformloginsuccesslocation">AuthFormLoginSuccessLocation</a></code>
|
||||
directive specifies the URL the user should be redirected to upon successful login.</p>
|
||||
|
||||
<p>Alternatively, the URL to redirect the user to on success can be embedded within the login
|
||||
form, as in the example below. As a result, the same <var>form-login-handler</var> can be
|
||||
reused for different areas of a website.</p>
|
||||
|
||||
<div class="example"><h3>Example login form with location</h3><pre class="prettyprint lang-html"><form method="POST" action="/dologin.html">
|
||||
Username: <input type="text" name="httpd_username" value="" />
|
||||
Password: <input type="password" name="httpd_password" value="" />
|
||||
<input type="submit" name="login" value="Login" />
|
||||
<input type="hidden" name="httpd_location" value="http://example.com/success.html" />
|
||||
</form></pre>
|
||||
</div>
|
||||
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="inline" id="inline">Inline Login</a></h2>
|
||||
|
||||
<div class="warning"><h3>Warning</h3>
|
||||
<p>A risk exists that under certain circumstances, the login form configured
|
||||
using inline login may be submitted more than once, revealing login credentials to
|
||||
the application running underneath. The administrator must ensure that the underlying
|
||||
application is properly secured to prevent abuse. If in doubt, use the
|
||||
standalone login configuration.</p>
|
||||
</div>
|
||||
|
||||
<p>As an alternative to having a dedicated login page for a website, it is possible to
|
||||
configure <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> to authenticate users inline, without being
|
||||
redirected to another page. This allows the state of the current page to be preserved
|
||||
during the login attempt. This can be useful in a situation where a time limited
|
||||
session is in force, and the session times out in the middle of the user request. The
|
||||
user can be re-authenticated in place, and they can continue where they left off.</p>
|
||||
|
||||
<p>If a non-authenticated user attempts to access a page protected by
|
||||
<code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> that isn't configured with a
|
||||
<code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code> directive,
|
||||
a <var>HTTP_UNAUTHORIZED</var> status code is returned to the browser indicating to the user
|
||||
that they are not authorized to view the page.</p>
|
||||
|
||||
<p>To configure inline authentication, the administrator overrides the error document
|
||||
returned by the <var>HTTP_UNAUTHORIZED</var> status code with a custom error document
|
||||
containing the login form, as follows:</p>
|
||||
|
||||
<div class="example"><h3>Basic inline example</h3><pre class="prettyprint lang-config">AuthFormProvider file
|
||||
ErrorDocument 401 "/login.shtml"
|
||||
AuthUserFile "conf/passwd"
|
||||
AuthType form
|
||||
AuthName realm
|
||||
AuthFormLoginRequiredLocation "http://example.com/login.html"
|
||||
Session On
|
||||
SessionCookieName session path=/
|
||||
SessionCryptoPassphrase secret</pre>
|
||||
</div>
|
||||
|
||||
<p>The error document page should contain a login form with an empty action property,
|
||||
as per the example below. This has the effect of submitting the form to
|
||||
the original protected URL, without the page having to know what that
|
||||
URL is.</p>
|
||||
|
||||
<div class="example"><h3>Example inline login form</h3><pre class="prettyprint lang-html"><form method="POST" <strong>action=""</strong>>
|
||||
Username: <input type="text" name="httpd_username" value="" />
|
||||
Password: <input type="password" name="httpd_password" value="" />
|
||||
<input type="submit" name="login" value="Login" />
|
||||
</form></pre>
|
||||
</div>
|
||||
|
||||
<p>When the end user has filled in their login details, the form will make
|
||||
an HTTP POST request to the original password protected URL.
|
||||
<code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> will intercept this POST request, and if
|
||||
HTML fields are found present for the username and password, the user
|
||||
will be logged in, and the original password protected URL will be returned
|
||||
to the user as a GET request.</p>
|
||||
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="inlinepreservebody" id="inlinepreservebody">Inline Login with Body Preservation</a></h2>
|
||||
|
||||
<p>A limitation of the inline login technique described above is that should an
|
||||
HTML form POST have resulted in the request to authenticate or
|
||||
reauthenticate, the
|
||||
contents of the original form posted by the browser will be lost. Depending on
|
||||
the function of the website, this could present significant inconvenience for the
|
||||
end user.</p>
|
||||
|
||||
<p><code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> addresses this by allowing the method and body
|
||||
of the original request to be embedded in the login form. If authentication
|
||||
is successful, the original method and body will be retried by Apache httpd, preserving
|
||||
the state of the original request.</p>
|
||||
|
||||
<p>To enable body preservation, add three additional fields to the login form as
|
||||
per the example below.</p>
|
||||
|
||||
<div class="example"><h3>Example with body preservation</h3><pre class="prettyprint lang-html"><form method="POST" action="">
|
||||
Username: <input type="text" name="httpd_username" value="" />
|
||||
Password: <input type="password" name="httpd_password" value="" />
|
||||
<input type="submit" name="login" value="Login" />
|
||||
<br /> <strong><input type="hidden" name="httpd_method" value="POST" />
|
||||
<input type="hidden" name="httpd_mimetype" value="application/x-www-form-urlencoded" />
|
||||
<input type="hidden" name="httpd_body" value="name1=value1&name2=value2" /></strong><br />
|
||||
</form></pre>
|
||||
</div>
|
||||
|
||||
<p>How the method, mimetype and body of the original request are embedded within the
|
||||
login form will depend on the platform and technology being used within the website.
|
||||
</p>
|
||||
|
||||
<p>One option is to use the <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> module along with the
|
||||
<code class="directive"><a href="../mod/mod_request.html#keptbodysize">KeptBodySize</a></code> directive, along with a suitable
|
||||
CGI script to embed the variables in the form.</p>
|
||||
|
||||
<p>Another option is to render the login form using a CGI script or other dynamic
|
||||
technology.</p>
|
||||
|
||||
<div class="example"><h3>CGI example</h3><pre class="prettyprint lang-config"> AuthFormProvider file
|
||||
ErrorDocument 401 "/cgi-bin/login.cgi"
|
||||
...</pre>
|
||||
</div>
|
||||
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="loggingout" id="loggingout">Logging Out</a></h2>
|
||||
|
||||
<p>To enable a user to log out of a particular session, configure a page to
|
||||
be handled by the <var>form-logout-handler</var>. Any attempt to access this
|
||||
URL will cause the username and password to be removed from the current
|
||||
session, effectively logging the user out.</p>
|
||||
|
||||
<p>By setting the
|
||||
<code class="directive"><a href="#authformlogoutlocation">AuthFormLogoutLocation</a></code> directive,
|
||||
a URL can be specified that the browser will be redirected to on successful
|
||||
logout. This URL might explain to the user that they have been logged out, and
|
||||
give the user the option to log in again.</p>
|
||||
|
||||
<div class="example"><h3>Basic logout example</h3><pre class="prettyprint lang-config">SetHandler form-logout-handler
|
||||
AuthName realm
|
||||
AuthFormLogoutLocation "http://example.com/loggedout.html"
|
||||
Session On
|
||||
SessionCookieName session path=/
|
||||
SessionCryptoPassphrase secret</pre>
|
||||
</div>
|
||||
|
||||
<p>Note that logging a user out does not delete the session; it merely removes
|
||||
the username and password from the session. If this results in an empty session,
|
||||
the net effect will be the removal of that session, but this is not
|
||||
guaranteed. If you want to guarantee the removal of a session, set the
|
||||
<code class="directive"><a href="../mod/mod_session.html#sessionmaxage">SessionMaxAge</a></code> directive to a small
|
||||
value, like 1 (setting the directive to zero would mean no session age limit).
|
||||
</p>
|
||||
|
||||
<div class="example"><h3>Basic session expiry example</h3><pre class="prettyprint lang-config">SetHandler form-logout-handler
|
||||
AuthFormLogoutLocation "http://example.com/loggedout.html"
|
||||
Session On
|
||||
SessionMaxAge 1
|
||||
SessionCookieName session path=/
|
||||
SessionCryptoPassphrase secret</pre>
|
||||
</div>
|
||||
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="urlencoding" id="urlencoding">Usernames and Passwords</a></h2>
|
||||
<p>Note that form submission involves URLEncoding the form data:
|
||||
in this case the username and password. You should therefore
|
||||
pick usernames and passwords that avoid characters that are
|
||||
URLencoded in form submission, or you may get unexpected results.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>Available Languages: </span><a href="../en/mod/mod_auth_form.html" title="English"> en </a> |
|
||||
|
||||
@@ -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"><form method="POST" action="/dologin.html">
|
||||
Username: <input type="text" name="httpd_username" value="" />
|
||||
Password: <input type="password" name="httpd_password" value="" />
|
||||
<input type="submit" name="login" value="Login" />
|
||||
</form></pre>
|
||||
</div>
|
||||
|
||||
<p>La partie o<> s'effectue la connexion proprement dite est
|
||||
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"><Location /dologin.html>
|
||||
SetHandler form-login-handler
|
||||
AuthFormLoginRequiredLocation http://example.com/login.html
|
||||
AuthFormLoginSuccessLocation http://example.com/success.html
|
||||
AuthFormProvider file
|
||||
AuthUserFile conf/passwd
|
||||
AuthType form
|
||||
AuthName realm
|
||||
Session On
|
||||
SessionCookieName session path=/
|
||||
SessionCryptoPassphrase secret
|
||||
</Location></pre>
|
||||
</div>
|
||||
|
||||
<p>L'URL 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"><form method="POST" action="/dologin.html">
|
||||
Username: <input type="text" name="httpd_username" value="" />
|
||||
Password: <input type="password" name="httpd_password" value="" />
|
||||
<input type="submit" name="login" value="Login" />
|
||||
<input type="hidden" name="httpd_location" value="http://example.com/success.html" />
|
||||
</form></pre>
|
||||
</div>
|
||||
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="inline" id="inline">Connexion <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"><form method="POST" <strong>action=""</strong>>
|
||||
Username: <input type="text" name="httpd_username" value="" />
|
||||
Password: <input type="password" name="httpd_password" value="" />
|
||||
<input type="submit" name="login" value="Login" />
|
||||
</form></pre>
|
||||
</div>
|
||||
|
||||
<p>Lorsque l'utilisateur final a entr<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"><form method="POST" action="">
|
||||
Username: <input type="text" name="httpd_username" value="" />
|
||||
Password: <input type="password" name="httpd_password" value="" />
|
||||
<input type="submit" name="login" value="Login" />
|
||||
<br /> <strong><input type="hidden" name="httpd_method" value="POST" />
|
||||
<input type="hidden" name="httpd_mimetype" value="application/x-www-form-urlencoded" />
|
||||
<input type="hidden" name="httpd_body" value="name1=value1&name2=value2" /></strong><br />
|
||||
</form></pre>
|
||||
</div>
|
||||
|
||||
<p>La 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"><form method="POST" action="/dologin.html">
|
||||
Username: <input type="text" name="httpd_username" value="" />
|
||||
Password: <input type="password" name="httpd_password" value="" />
|
||||
<input type="submit" name="login" value="Login" />
|
||||
</form></pre>
|
||||
</div>
|
||||
|
||||
<p>La partie o<> s'effectue la connexion proprement dite est
|
||||
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"><Location /dologin.html>
|
||||
SetHandler form-login-handler
|
||||
AuthFormLoginRequiredLocation http://example.com/login.html
|
||||
AuthFormLoginSuccessLocation http://example.com/success.html
|
||||
AuthFormProvider file
|
||||
AuthUserFile conf/passwd
|
||||
AuthType form
|
||||
AuthName realm
|
||||
Session On
|
||||
SessionCookieName session path=/
|
||||
SessionCryptoPassphrase secret
|
||||
</Location></pre>
|
||||
</div>
|
||||
|
||||
<p>L'URL 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"><form method="POST" action="/dologin.html">
|
||||
Username: <input type="text" name="httpd_username" value="" />
|
||||
Password: <input type="password" name="httpd_password" value="" />
|
||||
<input type="submit" name="login" value="Login" />
|
||||
<input type="hidden" name="httpd_location" value="http://example.com/success.html" />
|
||||
</form></pre>
|
||||
</div>
|
||||
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="inline" id="inline">Connexion <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"><form method="POST" <strong>action=""</strong>>
|
||||
Username: <input type="text" name="httpd_username" value="" />
|
||||
Password: <input type="password" name="httpd_password" value="" />
|
||||
<input type="submit" name="login" value="Login" />
|
||||
</form></pre>
|
||||
</div>
|
||||
|
||||
<p>Lorsque l'utilisateur final a entr<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"><form method="POST" action="">
|
||||
Username: <input type="text" name="httpd_username" value="" />
|
||||
Password: <input type="password" name="httpd_password" value="" />
|
||||
<input type="submit" name="login" value="Login" />
|
||||
<br /> <strong><input type="hidden" name="httpd_method" value="POST" />
|
||||
<input type="hidden" name="httpd_mimetype" value="application/x-www-form-urlencoded" />
|
||||
<input type="hidden" name="httpd_body" value="name1=value1&name2=value2" /></strong><br />
|
||||
</form></pre>
|
||||
</div>
|
||||
|
||||
<p>La 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"> en </a> |
|
||||
|
||||
@@ -67,49 +67,6 @@
|
||||
<li><img alt="" src="../images/down.gif" /> <a href="#example">Example</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="example" id="example">Example</a></h2>
|
||||
<p>The example below is combined with "normal" htpasswd-file based
|
||||
authentication and allows users in additionally as 'guests' with the
|
||||
following properties:</p>
|
||||
|
||||
<ul>
|
||||
<li>It insists that the user enters a userID.
|
||||
(<code class="directive"><a href="#anonymous_nouserid">Anonymous_NoUserID</a></code>)</li>
|
||||
|
||||
<li>It insists that the user enters a password.
|
||||
(<code class="directive"><a href="#anonymous_mustgiveemail">Anonymous_MustGiveEmail</a></code>)</li>
|
||||
|
||||
<li>The password entered must be a valid email address, <em>i.e.</em>
|
||||
contain at least one '@' and a '.'.
|
||||
(<code class="directive"><a href="#anonymous_verifyemail">Anonymous_VerifyEmail</a></code>)</li>
|
||||
|
||||
<li>The userID must be one of <code>anonymous guest www test
|
||||
welcome</code> and comparison is <strong>not</strong> case
|
||||
sensitive. (<code class="directive"><a href="#anonymous">Anonymous</a></code>)</li>
|
||||
|
||||
<li>And the Email addresses entered in the passwd field are
|
||||
logged to the error log file.
|
||||
(<code class="directive"><a href="#anonymous_logemail">Anonymous_LogEmail</a></code>)</li>
|
||||
</ul>
|
||||
|
||||
<div class="example"><h3>Example</h3><pre class="prettyprint lang-config"><Directory "/var/www/html/private">
|
||||
AuthName "Use 'anonymous' & Email address for guest entry"
|
||||
AuthType Basic
|
||||
AuthBasicProvider file anon
|
||||
AuthUserFile "/path/to/your/.htpasswd"
|
||||
|
||||
Anonymous_NoUserID off
|
||||
Anonymous_MustGiveEmail on
|
||||
Anonymous_VerifyEmail on
|
||||
Anonymous_LogEmail on
|
||||
Anonymous anonymous guest www test welcome
|
||||
|
||||
Require valid-user
|
||||
</Directory></pre>
|
||||
</div>
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="Anonymous" id="Anonymous">Anonymous</a> <a name="anonymous" id="anonymous">Directive</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specifies userIDs that are allowed access without
|
||||
@@ -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"><Directory "/var/www/html/private">
|
||||
AuthName "Use 'anonymous' & Email address for guest entry"
|
||||
AuthType Basic
|
||||
AuthBasicProvider file anon
|
||||
AuthUserFile "/path/to/your/.htpasswd"
|
||||
|
||||
Anonymous_NoUserID off
|
||||
Anonymous_MustGiveEmail on
|
||||
Anonymous_VerifyEmail on
|
||||
Anonymous_LogEmail on
|
||||
Anonymous anonymous guest www test welcome
|
||||
|
||||
Require valid-user
|
||||
</Directory></pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
|
||||
@@ -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"><Directory /var/www/html/private>
|
||||
AuthName "Use 'anonymous' & Email address for guest entry"
|
||||
AuthType Basic
|
||||
AuthBasicProvider file anon
|
||||
AuthUserFile /path/to/your/.htpasswd
|
||||
|
||||
Anonymous_NoUserID off
|
||||
Anonymous_MustGiveEmail on
|
||||
Anonymous_VerifyEmail on
|
||||
Anonymous_LogEmail on
|
||||
Anonymous anonymous guest www test welcome
|
||||
|
||||
Require valid-user
|
||||
</Directory></pre>
|
||||
</div>
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="anonymous" id="anonymous">Directive</a> <a name="Anonymous" id="Anonymous">Anonymous</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>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"><Directory /var/www/html/private>
|
||||
AuthName "Use 'anonymous' & Email address for guest entry"
|
||||
AuthType Basic
|
||||
AuthBasicProvider file anon
|
||||
AuthUserFile /path/to/your/.htpasswd
|
||||
|
||||
Anonymous_NoUserID off
|
||||
Anonymous_MustGiveEmail on
|
||||
Anonymous_VerifyEmail on
|
||||
Anonymous_LogEmail on
|
||||
Anonymous anonymous guest www test welcome
|
||||
|
||||
Require valid-user
|
||||
</Directory></pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
|
||||
@@ -72,49 +72,6 @@
|
||||
<li><img alt="" src="../images/down.gif" /> <a href="#example">例</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="example" id="example">例</a></h2>
|
||||
<p>以下の例は「普通」の htpasswd ファイルに基づいた認証と組み合わされて
|
||||
おり、以下の要件を見たすユーザを「ゲスト」として許可します:</p>
|
||||
|
||||
<ul>
|
||||
<li>ユーザは userID を入力しなければなりません。
|
||||
(<code class="directive"><a href="#anonymous_nouserid">Anonymous_NoUserID</a></code>)</li>
|
||||
|
||||
<li>ユーザはパスワードを入力しなければなりません。
|
||||
(<code class="directive"><a href="#anonymous_mustgiveemail">Anonymous_MustGiveEmail</a></code>)</li>
|
||||
|
||||
<li>入力されたパスワードは有効な電子メールアドレスでなければ
|
||||
なりません。<em>すなわち</em>、少くとも一つの '@' と '.' が
|
||||
含まれている必要があります。
|
||||
(<code class="directive"><a href="#anonymous_verifyemail">Anonymous_VerifyEmail</a></code>)</li>
|
||||
|
||||
<li>userID は <code>anonymous guest www test
|
||||
welcome</code> のどれかでなければなりません。
|
||||
ユーザ名の比較は大文字小文字を区別<strong>しません。</strong></li>
|
||||
|
||||
<li>パスワード欄に入力された電子メールアドレスはエラーログファイルに
|
||||
ロギングされます。
|
||||
(<code class="directive"><a href="#anonymous_logemail">Anonymous_LogEmail</a></code>)</li>
|
||||
</ul>
|
||||
|
||||
<div class="example"><h3>例</h3><pre class="prettyprint lang-config"><Directory /var/www/html/private>
|
||||
AuthName "Use 'anonymous' & Email address for guest entry"
|
||||
AuthType Basic
|
||||
AuthBasicProvider file anon
|
||||
AuthUserFile /path/to/your/.htpasswd
|
||||
|
||||
Anonymous_NoUserID off
|
||||
Anonymous_MustGiveEmail on
|
||||
Anonymous_VerifyEmail on
|
||||
Anonymous_LogEmail on
|
||||
Anonymous anonymous guest www test welcome
|
||||
|
||||
Require valid-user
|
||||
</Directory></pre>
|
||||
</div>
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="Anonymous" id="Anonymous">Anonymous</a> <a name="anonymous" id="anonymous">ディレクティブ</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>パスワードの検査無しでアクセスを許可する userID を指定する
|
||||
@@ -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"><Directory /var/www/html/private>
|
||||
AuthName "Use 'anonymous' & Email address for guest entry"
|
||||
AuthType Basic
|
||||
AuthBasicProvider file anon
|
||||
AuthUserFile /path/to/your/.htpasswd
|
||||
|
||||
Anonymous_NoUserID off
|
||||
Anonymous_MustGiveEmail on
|
||||
Anonymous_VerifyEmail on
|
||||
Anonymous_LogEmail on
|
||||
Anonymous anonymous guest www test welcome
|
||||
|
||||
Require valid-user
|
||||
</Directory></pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
|
||||
@@ -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>
|
||||
<Directory /foo>
|
||||
<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>
|
||||
</Directory>
|
||||
</code></p></div>
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="Anonymous" id="Anonymous">Anonymous</a> <a name="anonymous" id="anonymous"><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>
|
||||
<Directory /foo>
|
||||
<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>
|
||||
</Directory>
|
||||
</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"> en </a> |
|
||||
|
||||
@@ -50,78 +50,6 @@
|
||||
<li><img alt="" src="../images/down.gif" /> <a href="#authnalias">Creating Authentication Provider Aliases</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="authnalias" id="authnalias">Creating Authentication Provider Aliases</a></h2>
|
||||
|
||||
<p>Extended authentication providers can be created
|
||||
within the configuration file and assigned an alias name. The alias
|
||||
providers can then be referenced through the directives
|
||||
<code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> or
|
||||
<code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code> in
|
||||
the same way as a base authentication provider. Besides the ability
|
||||
to create and alias an extended provider, it also allows the same
|
||||
extended authentication provider to be reference by multiple
|
||||
locations.</p>
|
||||
|
||||
<h3><a name="example" id="example">Examples</a></h3>
|
||||
|
||||
<p>This example checks for passwords in two different text
|
||||
files.</p>
|
||||
|
||||
<div class="example"><h3>Checking multiple text password files</h3><pre class="prettyprint lang-config"># Check here first
|
||||
<AuthnProviderAlias file file1>
|
||||
AuthUserFile "/www/conf/passwords1"
|
||||
</AuthnProviderAlias>
|
||||
|
||||
# Then check here
|
||||
<AuthnProviderAlias file file2>
|
||||
AuthUserFile "/www/conf/passwords2"
|
||||
</AuthnProviderAlias>
|
||||
|
||||
<Directory "/var/web/pages/secure">
|
||||
AuthBasicProvider file1 file2
|
||||
|
||||
AuthType Basic
|
||||
AuthName "Protected Area"
|
||||
Require valid-user
|
||||
</Directory></pre>
|
||||
</div>
|
||||
|
||||
<p>The example below creates two different ldap authentication
|
||||
provider aliases based on the ldap provider. This allows
|
||||
a single authenticated location to be serviced by multiple ldap
|
||||
hosts:</p>
|
||||
|
||||
<div class="example"><h3>Checking multiple LDAP servers</h3><pre class="prettyprint lang-config"><AuthnProviderAlias ldap ldap-alias1>
|
||||
AuthLDAPBindDN "cn=youruser,o=ctx"
|
||||
AuthLDAPBindPassword yourpassword
|
||||
AuthLDAPURL "ldap://ldap.host/o=ctx"
|
||||
</AuthnProviderAlias>
|
||||
<AuthnProviderAlias ldap ldap-other-alias>
|
||||
AuthLDAPBindDN "cn=yourotheruser,o=dev"
|
||||
AuthLDAPBindPassword yourotherpassword
|
||||
AuthLDAPURL "ldap://other.ldap.host/o=dev?cn"
|
||||
</AuthnProviderAlias>
|
||||
|
||||
Alias "/secure" "/webpages/secure"
|
||||
<Directory "/webpages/secure">
|
||||
Order deny,allow
|
||||
Allow from all
|
||||
|
||||
AuthBasicProvider ldap-other-alias ldap-alias1
|
||||
|
||||
AuthType Basic
|
||||
AuthName "LDAP Protected Place"
|
||||
Require valid-user
|
||||
# Note that Require ldap-* would not work here, since the
|
||||
# AuthnProviderAlias does not provide the config to authorization providers
|
||||
# that are implemented in the same module as the authentication provider.
|
||||
</Directory></pre>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AuthName" id="AuthName">AuthName</a> <a name="authname" id="authname">Directive</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Authorization realm for use in HTTP
|
||||
@@ -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
|
||||
<AuthnProviderAlias file file1>
|
||||
AuthUserFile "/www/conf/passwords1"
|
||||
</AuthnProviderAlias>
|
||||
|
||||
# Then check here
|
||||
<AuthnProviderAlias file file2>
|
||||
AuthUserFile "/www/conf/passwords2"
|
||||
</AuthnProviderAlias>
|
||||
|
||||
<Directory "/var/web/pages/secure">
|
||||
AuthBasicProvider file1 file2
|
||||
|
||||
AuthType Basic
|
||||
AuthName "Protected Area"
|
||||
Require valid-user
|
||||
</Directory></pre>
|
||||
</div>
|
||||
|
||||
<p>The example below creates two different ldap authentication
|
||||
provider aliases based on the ldap provider. This allows
|
||||
a single authenticated location to be serviced by multiple ldap
|
||||
hosts:</p>
|
||||
|
||||
<div class="example"><h3>Checking multiple LDAP servers</h3><pre class="prettyprint lang-config"><AuthnProviderAlias ldap ldap-alias1>
|
||||
AuthLDAPBindDN "cn=youruser,o=ctx"
|
||||
AuthLDAPBindPassword yourpassword
|
||||
AuthLDAPURL "ldap://ldap.host/o=ctx"
|
||||
</AuthnProviderAlias>
|
||||
<AuthnProviderAlias ldap ldap-other-alias>
|
||||
AuthLDAPBindDN "cn=yourotheruser,o=dev"
|
||||
AuthLDAPBindPassword yourotherpassword
|
||||
AuthLDAPURL "ldap://other.ldap.host/o=dev?cn"
|
||||
</AuthnProviderAlias>
|
||||
|
||||
Alias "/secure" "/webpages/secure"
|
||||
<Directory "/webpages/secure">
|
||||
Order deny,allow
|
||||
Allow from all
|
||||
|
||||
AuthBasicProvider ldap-other-alias ldap-alias1
|
||||
|
||||
AuthType Basic
|
||||
AuthName "LDAP Protected Place"
|
||||
Require valid-user
|
||||
# Note that Require ldap-* would not work here, since the
|
||||
# AuthnProviderAlias does not provide the config to authorization providers
|
||||
# that are implemented in the same module as the authentication provider.
|
||||
</Directory></pre>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
|
||||
@@ -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
|
||||
<AuthnProviderAlias file file1>
|
||||
AuthUserFile /www/conf/passwords1
|
||||
</AuthnProviderAlias>
|
||||
|
||||
# V<>rification suivante
|
||||
<AuthnProviderAlias file file2>
|
||||
AuthUserFile /www/conf/passwords2
|
||||
</AuthnProviderAlias>
|
||||
|
||||
<Directory /var/web/pages/secure>
|
||||
AuthBasicProvider file1 file2
|
||||
|
||||
AuthType Basic
|
||||
AuthName "Protected Area"
|
||||
Require valid-user
|
||||
</Directory></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<p>Dans l'exemple ci-dessous, deux fournisseurs
|
||||
d'authentification ldap sont 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"><AuthnProviderAlias ldap ldap-alias1>
|
||||
AuthLDAPBindDN cn=youruser,o=ctx
|
||||
AuthLDAPBindPassword yourpassword
|
||||
AuthLDAPURL ldap://ldap.host/o=ctx
|
||||
</AuthnProviderAlias>
|
||||
<AuthnProviderAlias ldap ldap-other-alias>
|
||||
AuthLDAPBindDN cn=yourotheruser,o=dev
|
||||
AuthLDAPBindPassword yourotherpassword
|
||||
AuthLDAPURL ldap://other.ldap.host/o=dev?cn
|
||||
</AuthnProviderAlias>
|
||||
|
||||
Alias /secure /webpages/secure
|
||||
<Directory /webpages/secure>
|
||||
Order deny,allow
|
||||
Allow from all
|
||||
|
||||
AuthBasicProvider ldap-other-alias ldap-alias1
|
||||
|
||||
AuthType Basic
|
||||
AuthName LDAP_Protected Place
|
||||
Require valid-user
|
||||
# Notez que Require ldap-* ne fonctionnerait pas ici, car
|
||||
# AuthnProviderAlias ne fournit pas de configuration pour les
|
||||
# fournisseurs d'autorisation impl<70>ment<6E>s dans le m<>me module que le
|
||||
# fournisseur d'authentification.
|
||||
</Directory></pre>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="authname" id="authname">Directive</a> <a name="AuthName" id="AuthName">AuthName</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'identifiant de l'autorisation <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
|
||||
<AuthnProviderAlias file file1>
|
||||
AuthUserFile /www/conf/passwords1
|
||||
</AuthnProviderAlias>
|
||||
|
||||
# V<>rification suivante
|
||||
<AuthnProviderAlias file file2>
|
||||
AuthUserFile /www/conf/passwords2
|
||||
</AuthnProviderAlias>
|
||||
|
||||
<Directory /var/web/pages/secure>
|
||||
AuthBasicProvider file1 file2
|
||||
|
||||
AuthType Basic
|
||||
AuthName "Protected Area"
|
||||
Require valid-user
|
||||
</Directory></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<p>Dans l'exemple ci-dessous, deux fournisseurs
|
||||
d'authentification ldap sont 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"><AuthnProviderAlias ldap ldap-alias1>
|
||||
AuthLDAPBindDN cn=youruser,o=ctx
|
||||
AuthLDAPBindPassword yourpassword
|
||||
AuthLDAPURL ldap://ldap.host/o=ctx
|
||||
</AuthnProviderAlias>
|
||||
<AuthnProviderAlias ldap ldap-other-alias>
|
||||
AuthLDAPBindDN cn=yourotheruser,o=dev
|
||||
AuthLDAPBindPassword yourotherpassword
|
||||
AuthLDAPURL ldap://other.ldap.host/o=dev?cn
|
||||
</AuthnProviderAlias>
|
||||
|
||||
Alias /secure /webpages/secure
|
||||
<Directory /webpages/secure>
|
||||
Order deny,allow
|
||||
Allow from all
|
||||
|
||||
AuthBasicProvider ldap-other-alias ldap-alias1
|
||||
|
||||
AuthType Basic
|
||||
AuthName LDAP_Protected Place
|
||||
Require valid-user
|
||||
# Notez que Require ldap-* ne fonctionnerait pas ici, car
|
||||
# AuthnProviderAlias ne fournit pas de configuration pour les
|
||||
# fournisseurs d'autorisation impl<70>ment<6E>s dans le m<>me module que le
|
||||
# fournisseur d'authentification.
|
||||
</Directory></pre>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
|
||||
@@ -74,6 +74,70 @@
|
||||
<li><a href="../misc/password_encryptions.html">Password Formats</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AuthDBDUserPWQuery" id="AuthDBDUserPWQuery">AuthDBDUserPWQuery</a> <a name="authdbduserpwquery" id="authdbduserpwquery">Directive</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>SQL query to look up a password for a user</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthDBDUserPWQuery <var>query</var></code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authn_dbd</td></tr>
|
||||
</table>
|
||||
<p>The <code class="directive">AuthDBDUserPWQuery</code> specifies an
|
||||
SQL query to look up a password for a specified user. The user's ID
|
||||
will be passed as a single string parameter when the SQL query is
|
||||
executed. It may be referenced within the query statement using
|
||||
a <code>%s</code> format specifier.</p>
|
||||
<pre class="prettyprint lang-config">AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"</pre>
|
||||
|
||||
<p>The first column value of the first row returned by the query
|
||||
statement should be a string containing the encrypted password.
|
||||
Subsequent rows will be ignored. If no rows are returned, the user
|
||||
will not be authenticated through <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.</p>
|
||||
<p>If httpd was built against <a class="glossarylink" href="../glossary.html#apr" title="see glossary">APR</a> version 1.3.0
|
||||
or higher, any additional column values in the first row returned by
|
||||
the query statement will be stored as environment variables with
|
||||
names of the form <code>AUTHENTICATE_<var>COLUMN</var></code>.
|
||||
</p>
|
||||
<p>The encrypted password format depends on which authentication
|
||||
frontend (e.g. <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> or
|
||||
<code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code>) is being used. See <a href="../misc/password_encryptions.html">Password Formats</a> for
|
||||
more information.</p>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AuthDBDUserRealmQuery" id="AuthDBDUserRealmQuery">AuthDBDUserRealmQuery</a> <a name="authdbduserrealmquery" id="authdbduserrealmquery">Directive</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>SQL query to look up a password hash for a user and realm.
|
||||
</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthDBDUserRealmQuery <var>query</var></code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authn_dbd</td></tr>
|
||||
</table>
|
||||
<p>The <code class="directive">AuthDBDUserRealmQuery</code> specifies an
|
||||
SQL query to look up a password for a specified user and realm in a
|
||||
digest authentication process.
|
||||
The user's ID and the realm, in that order, will be passed as string
|
||||
parameters when the SQL query is executed. They may be referenced
|
||||
within the query statement using <code>%s</code> format specifiers.</p>
|
||||
<pre class="prettyprint lang-config">AuthDBDUserRealmQuery "SELECT password FROM authn WHERE user = %s AND realm = %s"</pre>
|
||||
|
||||
<p>The first column value of the first row returned by the query
|
||||
statement should be a string containing the encrypted password.
|
||||
Subsequent rows will be ignored. If no rows are returned, the user
|
||||
will not be authenticated through <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.</p>
|
||||
<p>If httpd was built against <a class="glossarylink" href="../glossary.html#apr" title="see glossary">APR</a> version 1.3.0
|
||||
or higher, any additional column values in the first row returned by
|
||||
the query statement will be stored as environment variables with
|
||||
names of the form <code>AUTHENTICATE_<var>COLUMN</var></code>.
|
||||
</p>
|
||||
<p>The encrypted password format depends on which authentication
|
||||
frontend (e.g. <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> or
|
||||
<code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code>) is being used. See <a href="../misc/password_encryptions.html">Password Formats</a> for
|
||||
more information.</p>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="socache" id="socache">Performance and Cacheing</a></h2>
|
||||
|
||||
@@ -148,70 +212,6 @@ configuration required in some web applications.
|
||||
<p>Please read <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> documentation for more information
|
||||
about security on this scope.</p>
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AuthDBDUserPWQuery" id="AuthDBDUserPWQuery">AuthDBDUserPWQuery</a> <a name="authdbduserpwquery" id="authdbduserpwquery">Directive</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>SQL query to look up a password for a user</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthDBDUserPWQuery <var>query</var></code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authn_dbd</td></tr>
|
||||
</table>
|
||||
<p>The <code class="directive">AuthDBDUserPWQuery</code> specifies an
|
||||
SQL query to look up a password for a specified user. The user's ID
|
||||
will be passed as a single string parameter when the SQL query is
|
||||
executed. It may be referenced within the query statement using
|
||||
a <code>%s</code> format specifier.</p>
|
||||
<pre class="prettyprint lang-config">AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"</pre>
|
||||
|
||||
<p>The first column value of the first row returned by the query
|
||||
statement should be a string containing the encrypted password.
|
||||
Subsequent rows will be ignored. If no rows are returned, the user
|
||||
will not be authenticated through <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.</p>
|
||||
<p>If httpd was built against <a class="glossarylink" href="../glossary.html#apr" title="see glossary">APR</a> version 1.3.0
|
||||
or higher, any additional column values in the first row returned by
|
||||
the query statement will be stored as environment variables with
|
||||
names of the form <code>AUTHENTICATE_<var>COLUMN</var></code>.
|
||||
</p>
|
||||
<p>The encrypted password format depends on which authentication
|
||||
frontend (e.g. <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> or
|
||||
<code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code>) is being used. See <a href="../misc/password_encryptions.html">Password Formats</a> for
|
||||
more information.</p>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AuthDBDUserRealmQuery" id="AuthDBDUserRealmQuery">AuthDBDUserRealmQuery</a> <a name="authdbduserrealmquery" id="authdbduserrealmquery">Directive</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>SQL query to look up a password hash for a user and realm.
|
||||
</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthDBDUserRealmQuery <var>query</var></code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authn_dbd</td></tr>
|
||||
</table>
|
||||
<p>The <code class="directive">AuthDBDUserRealmQuery</code> specifies an
|
||||
SQL query to look up a password for a specified user and realm in a
|
||||
digest authentication process.
|
||||
The user's ID and the realm, in that order, will be passed as string
|
||||
parameters when the SQL query is executed. They may be referenced
|
||||
within the query statement using <code>%s</code> format specifiers.</p>
|
||||
<pre class="prettyprint lang-config">AuthDBDUserRealmQuery "SELECT password FROM authn WHERE user = %s AND realm = %s"</pre>
|
||||
|
||||
<p>The first column value of the first row returned by the query
|
||||
statement should be a string containing the encrypted password.
|
||||
Subsequent rows will be ignored. If no rows are returned, the user
|
||||
will not be authenticated through <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.</p>
|
||||
<p>If httpd was built against <a class="glossarylink" href="../glossary.html#apr" title="see glossary">APR</a> version 1.3.0
|
||||
or higher, any additional column values in the first row returned by
|
||||
the query statement will be stored as environment variables with
|
||||
names of the form <code>AUTHENTICATE_<var>COLUMN</var></code>.
|
||||
</p>
|
||||
<p>The encrypted password format depends on which authentication
|
||||
frontend (e.g. <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> or
|
||||
<code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code>) is being used. See <a href="../misc/password_encryptions.html">Password Formats</a> for
|
||||
more information.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>Available Languages: </span><a href="../en/mod/mod_authn_dbd.html" title="English"> en </a> |
|
||||
|
||||
@@ -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"> en </a> |
|
||||
|
||||
@@ -66,7 +66,6 @@
|
||||
<li><code class="program"><a href="../programs/htdbm.html">htdbm</a></code></li>
|
||||
<li><a href="../misc/password_encryptions.html">Password Formats</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AuthDBMType" id="AuthDBMType">AuthDBMType</a> <a name="authdbmtype" id="authdbmtype">Directive</a></h2>
|
||||
<table class="directive">
|
||||
@@ -138,6 +137,7 @@ passwords for authentication</td></tr>
|
||||
<code class="program"><a href="../programs/htdbm.html">htdbm</a></code>.</p>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>Available Languages: </span><a href="../en/mod/mod_authn_dbm.html" title="English"> en </a> |
|
||||
|
||||
@@ -66,7 +66,6 @@ passe</a></li>
|
||||
<li><code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code></li>
|
||||
<li><code class="program"><a href="../programs/htdbm.html">htdbm</a></code></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="authdbmtype" id="authdbmtype">Directive</a> <a name="AuthDBMType" id="AuthDBMType">AuthDBMType</a></h2>
|
||||
<table class="directive">
|
||||
@@ -145,6 +144,7 @@ des utilisateurs et de leurs mots de passe</td></tr>
|
||||
utilitaire permettant de maintenir les fichiers DBM.</p>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_authn_dbm.html" hreflang="en" rel="alternate" title="English"> en </a> |
|
||||
|
||||
@@ -68,7 +68,6 @@
|
||||
<code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code>
|
||||
</li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AuthDBMType" id="AuthDBMType">AuthDBMType</a> <a name="authdbmtype" id="authdbmtype">ディレクティブ</a></h2>
|
||||
<table class="directive">
|
||||
@@ -132,6 +131,7 @@
|
||||
更新したりすることができます。</p>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>翻訳済み言語: </span><a href="../en/mod/mod_authn_dbm.html" hreflang="en" rel="alternate" title="English"> en </a> |
|
||||
|
||||
@@ -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"> en </a> |
|
||||
|
||||
@@ -62,7 +62,6 @@
|
||||
<li><code class="program"><a href="../programs/htdigest.html">htdigest</a></code></li>
|
||||
<li><a href="../misc/password_encryptions.html">Password Formats</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AuthUserFile" id="AuthUserFile">AuthUserFile</a> <a name="authuserfile" id="authuserfile">Directive</a></h2>
|
||||
<table class="directive">
|
||||
@@ -128,6 +127,7 @@ passwords for authentication</td></tr>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>Available Languages: </span><a href="../en/mod/mod_authn_file.html" title="English"> en </a> |
|
||||
|
||||
@@ -63,7 +63,6 @@ texte</td></tr>
|
||||
<li><a href="../misc/password_encryptions.html">Formats de mots de
|
||||
passe</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="authuserfile" id="authuserfile">Directive</a> <a name="AuthUserFile" id="AuthUserFile">AuthUserFile</a></h2>
|
||||
<table class="directive">
|
||||
@@ -136,6 +135,7 @@ passe</td></tr>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_authn_file.html" hreflang="en" rel="alternate" title="English"> en </a> |
|
||||
|
||||
@@ -67,7 +67,6 @@
|
||||
<li><code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code></li>
|
||||
<li><code class="program"><a href="../programs/htdigest.html">htdigest</a></code></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AuthUserFile" id="AuthUserFile">AuthUserFile</a> <a name="authuserfile" id="authuserfile">ディレクティブ</a></h2>
|
||||
<table class="directive">
|
||||
@@ -139,6 +138,7 @@
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>翻訳済み言語: </span><a href="../en/mod/mod_authn_file.html" hreflang="en" rel="alternate" title="English"> en </a> |
|
||||
|
||||
@@ -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"> en </a> |
|
||||
|
||||
@@ -53,61 +53,6 @@ the load on backends</td></tr>
|
||||
<li><img alt="" src="../images/down.gif" /> <a href="#dev">Cacheing with custom modules</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="intro" id="intro">Authentication Cacheing</a></h2>
|
||||
<p>Some users of more heavyweight authentication such as SQL database
|
||||
lookups (<code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>) have reported it putting an
|
||||
unacceptable load on their authentication provider. A typical case
|
||||
in point is where an HTML page contains hundreds of objects
|
||||
(images, scripts, stylesheets, media, etc), and a request to the page
|
||||
generates hundreds of effectively-immediate requests for authenticated
|
||||
additional contents.</p>
|
||||
<p>mod_authn_socache provides a solution to this problem by
|
||||
maintaining a cache of authentication credentials.</p>
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="usage" id="usage">Usage</a></h2>
|
||||
<p>The authentication cache should be used where authentication
|
||||
lookups impose a significant load on the server, or a backend or
|
||||
network. Authentication by file (<code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>)
|
||||
or dbm (<code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code>) are unlikely to benefit,
|
||||
as these are fast and lightweight in their own right (though in some
|
||||
cases, such as a network-mounted file, cacheing may be worthwhile).
|
||||
Other providers such as SQL or LDAP based authentication are more
|
||||
likely to benefit, particularly where there is an observed
|
||||
performance issue. Amongst the standard modules, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> manages its own cache, so only
|
||||
<code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> will usually benefit from this cache.</p>
|
||||
<p>The basic rules to cache for a provider are:</p>
|
||||
<ol><li>Include the provider you're cacheing for in an
|
||||
<code class="directive">AuthnCacheProvideFor</code> directive.</li>
|
||||
<li>List <var>socache</var> ahead of the provider you're
|
||||
cacheing for in your <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> or <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code> directive.</li>
|
||||
</ol>
|
||||
<p>A simple usage example to accelerate <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>
|
||||
using dbm as a cache engine:</p>
|
||||
<pre class="prettyprint lang-config">#AuthnCacheSOCache is optional. If specified, it is server-wide
|
||||
AuthnCacheSOCache dbm
|
||||
<Directory /usr/www/myhost/private>
|
||||
AuthType Basic
|
||||
AuthName "Cached Authentication Example"
|
||||
AuthBasicProvider socache dbd
|
||||
AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"
|
||||
AuthnCacheProvideFor dbd
|
||||
Require valid-user
|
||||
#Optional
|
||||
AuthnCacheContext dbd-authn-example
|
||||
</Directory></pre>
|
||||
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="dev" id="dev">Cacheing with custom modules</a></h2>
|
||||
<p>Module developers should note that their modules must be enabled
|
||||
for cacheing with mod_authn_socache. A single optional API function
|
||||
<var>ap_authn_cache_store</var> is provided to cache credentials
|
||||
a provider has just looked up or generated. Usage examples are
|
||||
available in <a href="http://svn.eu.apache.org/viewvc?view=revision&revision=957072">r957072</a>, in which three authn providers are enabled for cacheing.</p>
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AuthnCacheContext" id="AuthnCacheContext">AuthnCacheContext</a> <a name="authncachecontext" id="authncachecontext">Directive</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specify a context string for use in the cache key</td></tr>
|
||||
@@ -222,6 +167,61 @@ Apache HTTP Server 2.4.7 and later</td></tr>
|
||||
your timeout.</p>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="intro" id="intro">Authentication Cacheing</a></h2>
|
||||
<p>Some users of more heavyweight authentication such as SQL database
|
||||
lookups (<code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>) have reported it putting an
|
||||
unacceptable load on their authentication provider. A typical case
|
||||
in point is where an HTML page contains hundreds of objects
|
||||
(images, scripts, stylesheets, media, etc), and a request to the page
|
||||
generates hundreds of effectively-immediate requests for authenticated
|
||||
additional contents.</p>
|
||||
<p>mod_authn_socache provides a solution to this problem by
|
||||
maintaining a cache of authentication credentials.</p>
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="usage" id="usage">Usage</a></h2>
|
||||
<p>The authentication cache should be used where authentication
|
||||
lookups impose a significant load on the server, or a backend or
|
||||
network. Authentication by file (<code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>)
|
||||
or dbm (<code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code>) are unlikely to benefit,
|
||||
as these are fast and lightweight in their own right (though in some
|
||||
cases, such as a network-mounted file, cacheing may be worthwhile).
|
||||
Other providers such as SQL or LDAP based authentication are more
|
||||
likely to benefit, particularly where there is an observed
|
||||
performance issue. Amongst the standard modules, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> manages its own cache, so only
|
||||
<code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> will usually benefit from this cache.</p>
|
||||
<p>The basic rules to cache for a provider are:</p>
|
||||
<ol><li>Include the provider you're cacheing for in an
|
||||
<code class="directive">AuthnCacheProvideFor</code> directive.</li>
|
||||
<li>List <var>socache</var> ahead of the provider you're
|
||||
cacheing for in your <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> or <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code> directive.</li>
|
||||
</ol>
|
||||
<p>A simple usage example to accelerate <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>
|
||||
using dbm as a cache engine:</p>
|
||||
<pre class="prettyprint lang-config">#AuthnCacheSOCache is optional. If specified, it is server-wide
|
||||
AuthnCacheSOCache dbm
|
||||
<Directory /usr/www/myhost/private>
|
||||
AuthType Basic
|
||||
AuthName "Cached Authentication Example"
|
||||
AuthBasicProvider socache dbd
|
||||
AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"
|
||||
AuthnCacheProvideFor dbd
|
||||
Require valid-user
|
||||
#Optional
|
||||
AuthnCacheContext dbd-authn-example
|
||||
</Directory></pre>
|
||||
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="dev" id="dev">Cacheing with custom modules</a></h2>
|
||||
<p>Module developers should note that their modules must be enabled
|
||||
for cacheing with mod_authn_socache. A single optional API function
|
||||
<var>ap_authn_cache_store</var> is provided to cache credentials
|
||||
a provider has just looked up or generated. Usage examples are
|
||||
available in <a href="http://svn.eu.apache.org/viewvc?view=revision&revision=957072">r957072</a>, in which three authn providers are enabled for cacheing.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>Available Languages: </span><a href="../en/mod/mod_authn_socache.html" title="English"> en </a> |
|
||||
|
||||
@@ -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
|
||||
<Directory /usr/www/myhost/private>
|
||||
AuthType Basic
|
||||
AuthName "Cached Authentication Example"
|
||||
AuthBasicProvider socache dbd
|
||||
AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"
|
||||
AuthnCacheProvideFor dbd
|
||||
Require valid-user
|
||||
#Optionnel
|
||||
AuthnCacheContext dbd-authn-example
|
||||
</Directory></pre>
|
||||
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="dev" id="dev">La mise en cache avec les modules tiers</a></h2>
|
||||
<p>Les 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&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
|
||||
<Directory /usr/www/myhost/private>
|
||||
AuthType Basic
|
||||
AuthName "Cached Authentication Example"
|
||||
AuthBasicProvider socache dbd
|
||||
AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"
|
||||
AuthnCacheProvideFor dbd
|
||||
Require valid-user
|
||||
#Optionnel
|
||||
AuthnCacheContext dbd-authn-example
|
||||
</Directory></pre>
|
||||
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="dev" id="dev">La mise en cache avec les modules tiers</a></h2>
|
||||
<p>Les 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&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"> en </a> |
|
||||
|
||||
@@ -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
@@ -61,210 +61,6 @@
|
||||
<li><img alt="" src="../images/down.gif" /> <a href="#authzalias">Creating Authorization Provider Aliases</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="logic" id="logic">Authorization Containers</a></h2>
|
||||
|
||||
<p>The authorization container directives
|
||||
<code class="directive"><a href="#requireall"><RequireAll></a></code>,
|
||||
<code class="directive"><a href="#requireany"><RequireAny></a></code>
|
||||
and
|
||||
<code class="directive"><a href="#requirenone"><RequireNone></a></code>
|
||||
may be combined with each other and with the
|
||||
<code class="directive"><a href="#require">Require</a></code>
|
||||
directive to express complex authorization logic.</p>
|
||||
|
||||
<p>The example below expresses the following authorization logic.
|
||||
In order to access the resource, the user must either be the
|
||||
<code>superadmin</code> user, or belong to both the
|
||||
<code>admins</code> group and the <code>Administrators</code> LDAP
|
||||
group and either belong to the <code>sales</code> group or
|
||||
have the LDAP <code>dept</code> attribute <code>sales</code>.
|
||||
Furthermore, in order to access the resource, the user must
|
||||
not belong to either the <code>temps</code> group or the
|
||||
LDAP group <code>Temporary Employees</code>.</p>
|
||||
|
||||
<pre class="prettyprint lang-config"><Directory "/www/mydocs">
|
||||
<RequireAll>
|
||||
<RequireAny>
|
||||
Require user superadmin
|
||||
<RequireAll>
|
||||
Require group admins
|
||||
Require ldap-group "cn=Administrators,o=Airius"
|
||||
<RequireAny>
|
||||
Require group sales
|
||||
Require ldap-attribute dept="sales"
|
||||
</RequireAny>
|
||||
</RequireAll>
|
||||
</RequireAny>
|
||||
<RequireNone>
|
||||
Require group temps
|
||||
Require ldap-group "cn=Temporary Employees,o=Airius"
|
||||
</RequireNone>
|
||||
</RequireAll>
|
||||
</Directory></pre>
|
||||
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="requiredirectives" id="requiredirectives">The Require Directives</a></h2>
|
||||
|
||||
<p><code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code> provides some generic authorization
|
||||
providers which can be used with the
|
||||
<code class="directive"><a href="#require">Require</a></code> directive.</p>
|
||||
|
||||
<h3><a name="reqenv" id="reqenv">Require env</a></h3>
|
||||
|
||||
<p>The <code>env</code> provider allows access to the server
|
||||
to be controlled based on the existence of an <a href="../env.html">environment variable</a>. When <code>Require
|
||||
env <var>env-variable</var></code> is specified, then the request is
|
||||
allowed access if the environment variable <var>env-variable</var>
|
||||
exists. The server provides the ability to set environment
|
||||
variables in a flexible way based on characteristics of the client
|
||||
request using the directives provided by
|
||||
<code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code>. Therefore, this directive can be
|
||||
used to allow access based on such factors as the clients
|
||||
<code>User-Agent</code> (browser type), <code>Referer</code>, or
|
||||
other HTTP request header fields.</p>
|
||||
|
||||
<pre class="prettyprint lang-config">SetEnvIf User-Agent "^KnockKnock/2\.0" let_me_in
|
||||
<Directory "/docroot">
|
||||
Require env let_me_in
|
||||
</Directory></pre>
|
||||
|
||||
|
||||
<p>In this case, browsers with a user-agent string beginning
|
||||
with <code>KnockKnock/2.0</code> will be allowed access, and all
|
||||
others will be denied.</p>
|
||||
|
||||
<p>When the server looks up a path via an internal
|
||||
<a class="glossarylink" href="../glossary.html#subrequest" title="see glossary">subrequest</a> such as looking
|
||||
for a <code class="directive"><a href="../mod/mod_dir.html#directoryindex">DirectoryIndex</a></code>
|
||||
or generating a directory listing with <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code>,
|
||||
per-request environment variables are <em>not</em> inherited in the
|
||||
subrequest. Additionally,
|
||||
<code class="directive"><a href="../mod/mod_setenvif.html#setenvif">SetEnvIf</a></code> directives
|
||||
are not separately evaluated in the subrequest due to the API phases
|
||||
<code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> takes action in.</p>
|
||||
|
||||
|
||||
|
||||
<h3><a name="reqall" id="reqall">Require all</a></h3>
|
||||
|
||||
<p>The <code>all</code> provider mimics the functionality that
|
||||
was previously provided by the 'Allow from all' and 'Deny from all'
|
||||
directives. This provider can take one of two arguments which are
|
||||
'granted' or 'denied'. The following examples will grant or deny
|
||||
access to all requests.</p>
|
||||
|
||||
<pre class="prettyprint lang-config">Require all granted</pre>
|
||||
|
||||
|
||||
<pre class="prettyprint lang-config">Require all denied</pre>
|
||||
|
||||
|
||||
|
||||
|
||||
<h3><a name="reqmethod" id="reqmethod">Require method</a></h3>
|
||||
|
||||
<p>The <code>method</code> provider allows using the HTTP method in
|
||||
authorization decisions. The GET and HEAD methods are treated as
|
||||
equivalent. The TRACE method is not available to this provider,
|
||||
use <code class="directive"><a href="../mod/core.html#traceenable">TraceEnable</a></code> instead.</p>
|
||||
|
||||
<p>The following example will only allow GET, HEAD, POST, and OPTIONS
|
||||
requests:</p>
|
||||
|
||||
<pre class="prettyprint lang-config">Require method GET POST OPTIONS</pre>
|
||||
|
||||
|
||||
<p>The following example will allow GET, HEAD, POST, and OPTIONS
|
||||
requests without authentication, and require a valid user for all other
|
||||
methods:</p>
|
||||
|
||||
<pre class="prettyprint lang-config"><RequireAny>
|
||||
<20>Require method GET POST OPTIONS
|
||||
<20>Require valid-user
|
||||
</RequireAny></pre>
|
||||
|
||||
|
||||
|
||||
|
||||
<h3><a name="reqexpr" id="reqexpr">Require expr</a></h3>
|
||||
|
||||
<p>The <code>expr</code> provider allows basing authorization
|
||||
decisions on arbitrary expressions.</p>
|
||||
|
||||
<pre class="prettyprint lang-config">Require expr %{TIME_HOUR} -ge 9 && %{TIME_HOUR} -le 17</pre>
|
||||
|
||||
|
||||
<pre class="prettyprint lang-config"><RequireAll>
|
||||
Require expr "!(%{QUERY_STRING} =~ /secret/)"
|
||||
Require expr "%{REQUEST_URI} in { '/example.cgi', '/other.cgi' }"
|
||||
</RequireAll></pre>
|
||||
|
||||
|
||||
<pre class="prettyprint lang-config">Require expr "!(%{QUERY_STRING} =~ /secret/) && %{REQUEST_URI} in { '/example.cgi', '/other.cgi' }"</pre>
|
||||
|
||||
|
||||
<p>The syntax is described in the <a href="../expr.html">ap_expr</a>
|
||||
documentation.</p>
|
||||
|
||||
<p>Normally, the expression is evaluated before authentication. However, if
|
||||
the expression returns false and references the variable
|
||||
<code>%{REMOTE_USER}</code>, authentication will be performed and
|
||||
the expression will be re-evaluated.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="authzalias" id="authzalias">Creating Authorization Provider Aliases</a></h2>
|
||||
|
||||
<p>Extended authorization providers can be created within the configuration
|
||||
file and assigned an alias name. The alias providers can then be referenced
|
||||
through the <code class="directive"><a href="#require">Require</a></code> directive
|
||||
in the same way as a base authorization provider. Besides the ability to
|
||||
create and alias an extended provider, it also allows the same extended
|
||||
authorization provider to be referenced by multiple locations.
|
||||
</p>
|
||||
|
||||
<h3><a name="example" id="example">Example</a></h3>
|
||||
<p>The example below creates two different ldap authorization provider
|
||||
aliases based on the ldap-group authorization provider. This example
|
||||
allows a single authorization location to check group membership within
|
||||
multiple ldap hosts:
|
||||
</p>
|
||||
|
||||
<pre class="prettyprint lang-config"><AuthzProviderAlias ldap-group ldap-group-alias1 "cn=my-group,o=ctx">
|
||||
AuthLDAPBindDN "cn=youruser,o=ctx"
|
||||
AuthLDAPBindPassword yourpassword
|
||||
AuthLDAPURL "ldap://ldap.host/o=ctx"
|
||||
</AuthzProviderAlias>
|
||||
|
||||
<AuthzProviderAlias ldap-group ldap-group-alias2 "cn=my-other-group,o=dev">
|
||||
AuthLDAPBindDN "cn=yourotheruser,o=dev"
|
||||
AuthLDAPBindPassword yourotherpassword
|
||||
AuthLDAPURL "ldap://other.ldap.host/o=dev?cn"
|
||||
</AuthzProviderAlias>
|
||||
|
||||
Alias "/secure" "/webpages/secure"
|
||||
<Directory "/webpages/secure">
|
||||
Require all granted
|
||||
|
||||
AuthBasicProvider file
|
||||
|
||||
AuthType Basic
|
||||
AuthName LDAP_Protected_Place
|
||||
|
||||
#implied OR operation
|
||||
Require ldap-group-alias1
|
||||
Require ldap-group-alias2
|
||||
</Directory></pre>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AuthMerging" id="AuthMerging">AuthMerging</a> <a name="authmerging" id="authmerging">Directive</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Controls the manner in which each configuration section's
|
||||
@@ -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"><RequireAll></a></code>,
|
||||
<code class="directive"><a href="#requireany"><RequireAny></a></code>
|
||||
and
|
||||
<code class="directive"><a href="#requirenone"><RequireNone></a></code>
|
||||
may be combined with each other and with the
|
||||
<code class="directive"><a href="#require">Require</a></code>
|
||||
directive to express complex authorization logic.</p>
|
||||
|
||||
<p>The example below expresses the following authorization logic.
|
||||
In order to access the resource, the user must either be the
|
||||
<code>superadmin</code> user, or belong to both the
|
||||
<code>admins</code> group and the <code>Administrators</code> LDAP
|
||||
group and either belong to the <code>sales</code> group or
|
||||
have the LDAP <code>dept</code> attribute <code>sales</code>.
|
||||
Furthermore, in order to access the resource, the user must
|
||||
not belong to either the <code>temps</code> group or the
|
||||
LDAP group <code>Temporary Employees</code>.</p>
|
||||
|
||||
<pre class="prettyprint lang-config"><Directory "/www/mydocs">
|
||||
<RequireAll>
|
||||
<RequireAny>
|
||||
Require user superadmin
|
||||
<RequireAll>
|
||||
Require group admins
|
||||
Require ldap-group "cn=Administrators,o=Airius"
|
||||
<RequireAny>
|
||||
Require group sales
|
||||
Require ldap-attribute dept="sales"
|
||||
</RequireAny>
|
||||
</RequireAll>
|
||||
</RequireAny>
|
||||
<RequireNone>
|
||||
Require group temps
|
||||
Require ldap-group "cn=Temporary Employees,o=Airius"
|
||||
</RequireNone>
|
||||
</RequireAll>
|
||||
</Directory></pre>
|
||||
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="requiredirectives" id="requiredirectives">The Require Directives</a></h2>
|
||||
|
||||
<p><code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code> provides some generic authorization
|
||||
providers which can be used with the
|
||||
<code class="directive"><a href="#require">Require</a></code> directive.</p>
|
||||
|
||||
<h3><a name="reqenv" id="reqenv">Require env</a></h3>
|
||||
|
||||
<p>The <code>env</code> provider allows access to the server
|
||||
to be controlled based on the existence of an <a href="../env.html">environment variable</a>. When <code>Require
|
||||
env <var>env-variable</var></code> is specified, then the request is
|
||||
allowed access if the environment variable <var>env-variable</var>
|
||||
exists. The server provides the ability to set environment
|
||||
variables in a flexible way based on characteristics of the client
|
||||
request using the directives provided by
|
||||
<code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code>. Therefore, this directive can be
|
||||
used to allow access based on such factors as the clients
|
||||
<code>User-Agent</code> (browser type), <code>Referer</code>, or
|
||||
other HTTP request header fields.</p>
|
||||
|
||||
<pre class="prettyprint lang-config">SetEnvIf User-Agent "^KnockKnock/2\.0" let_me_in
|
||||
<Directory "/docroot">
|
||||
Require env let_me_in
|
||||
</Directory></pre>
|
||||
|
||||
|
||||
<p>In this case, browsers with a user-agent string beginning
|
||||
with <code>KnockKnock/2.0</code> will be allowed access, and all
|
||||
others will be denied.</p>
|
||||
|
||||
<p>When the server looks up a path via an internal
|
||||
<a class="glossarylink" href="../glossary.html#subrequest" title="see glossary">subrequest</a> such as looking
|
||||
for a <code class="directive"><a href="../mod/mod_dir.html#directoryindex">DirectoryIndex</a></code>
|
||||
or generating a directory listing with <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code>,
|
||||
per-request environment variables are <em>not</em> inherited in the
|
||||
subrequest. Additionally,
|
||||
<code class="directive"><a href="../mod/mod_setenvif.html#setenvif">SetEnvIf</a></code> directives
|
||||
are not separately evaluated in the subrequest due to the API phases
|
||||
<code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> takes action in.</p>
|
||||
|
||||
|
||||
|
||||
<h3><a name="reqall" id="reqall">Require all</a></h3>
|
||||
|
||||
<p>The <code>all</code> provider mimics the functionality that
|
||||
was previously provided by the 'Allow from all' and 'Deny from all'
|
||||
directives. This provider can take one of two arguments which are
|
||||
'granted' or 'denied'. The following examples will grant or deny
|
||||
access to all requests.</p>
|
||||
|
||||
<pre class="prettyprint lang-config">Require all granted</pre>
|
||||
|
||||
|
||||
<pre class="prettyprint lang-config">Require all denied</pre>
|
||||
|
||||
|
||||
|
||||
|
||||
<h3><a name="reqmethod" id="reqmethod">Require method</a></h3>
|
||||
|
||||
<p>The <code>method</code> provider allows using the HTTP method in
|
||||
authorization decisions. The GET and HEAD methods are treated as
|
||||
equivalent. The TRACE method is not available to this provider,
|
||||
use <code class="directive"><a href="../mod/core.html#traceenable">TraceEnable</a></code> instead.</p>
|
||||
|
||||
<p>The following example will only allow GET, HEAD, POST, and OPTIONS
|
||||
requests:</p>
|
||||
|
||||
<pre class="prettyprint lang-config">Require method GET POST OPTIONS</pre>
|
||||
|
||||
|
||||
<p>The following example will allow GET, HEAD, POST, and OPTIONS
|
||||
requests without authentication, and require a valid user for all other
|
||||
methods:</p>
|
||||
|
||||
<pre class="prettyprint lang-config"><RequireAny>
|
||||
<20>Require method GET POST OPTIONS
|
||||
<20>Require valid-user
|
||||
</RequireAny></pre>
|
||||
|
||||
|
||||
|
||||
|
||||
<h3><a name="reqexpr" id="reqexpr">Require expr</a></h3>
|
||||
|
||||
<p>The <code>expr</code> provider allows basing authorization
|
||||
decisions on arbitrary expressions.</p>
|
||||
|
||||
<pre class="prettyprint lang-config">Require expr %{TIME_HOUR} -ge 9 && %{TIME_HOUR} -le 17</pre>
|
||||
|
||||
|
||||
<pre class="prettyprint lang-config"><RequireAll>
|
||||
Require expr "!(%{QUERY_STRING} =~ /secret/)"
|
||||
Require expr "%{REQUEST_URI} in { '/example.cgi', '/other.cgi' }"
|
||||
</RequireAll></pre>
|
||||
|
||||
|
||||
<pre class="prettyprint lang-config">Require expr "!(%{QUERY_STRING} =~ /secret/) && %{REQUEST_URI} in { '/example.cgi', '/other.cgi' }"</pre>
|
||||
|
||||
|
||||
<p>The syntax is described in the <a href="../expr.html">ap_expr</a>
|
||||
documentation.</p>
|
||||
|
||||
<p>Normally, the expression is evaluated before authentication. However, if
|
||||
the expression returns false and references the variable
|
||||
<code>%{REMOTE_USER}</code>, authentication will be performed and
|
||||
the expression will be re-evaluated.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="authzalias" id="authzalias">Creating Authorization Provider Aliases</a></h2>
|
||||
|
||||
<p>Extended authorization providers can be created within the configuration
|
||||
file and assigned an alias name. The alias providers can then be referenced
|
||||
through the <code class="directive"><a href="#require">Require</a></code> directive
|
||||
in the same way as a base authorization provider. Besides the ability to
|
||||
create and alias an extended provider, it also allows the same extended
|
||||
authorization provider to be referenced by multiple locations.
|
||||
</p>
|
||||
|
||||
<h3><a name="example" id="example">Example</a></h3>
|
||||
<p>The example below creates two different ldap authorization provider
|
||||
aliases based on the ldap-group authorization provider. This example
|
||||
allows a single authorization location to check group membership within
|
||||
multiple ldap hosts:
|
||||
</p>
|
||||
|
||||
<pre class="prettyprint lang-config"><AuthzProviderAlias ldap-group ldap-group-alias1 "cn=my-group,o=ctx">
|
||||
AuthLDAPBindDN "cn=youruser,o=ctx"
|
||||
AuthLDAPBindPassword yourpassword
|
||||
AuthLDAPURL "ldap://ldap.host/o=ctx"
|
||||
</AuthzProviderAlias>
|
||||
|
||||
<AuthzProviderAlias ldap-group ldap-group-alias2 "cn=my-other-group,o=dev">
|
||||
AuthLDAPBindDN "cn=yourotheruser,o=dev"
|
||||
AuthLDAPBindPassword yourotherpassword
|
||||
AuthLDAPURL "ldap://other.ldap.host/o=dev?cn"
|
||||
</AuthzProviderAlias>
|
||||
|
||||
Alias "/secure" "/webpages/secure"
|
||||
<Directory "/webpages/secure">
|
||||
Require all granted
|
||||
|
||||
AuthBasicProvider file
|
||||
|
||||
AuthType Basic
|
||||
AuthName LDAP_Protected_Place
|
||||
|
||||
#implied OR operation
|
||||
Require ldap-group-alias1
|
||||
Require ldap-group-alias2
|
||||
</Directory></pre>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
|
||||
@@ -65,208 +65,6 @@ d'Apache HTTPD</td></tr></table>
|
||||
d'autorisation</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="logic" id="logic">Conteneurs d'autorisation</a></h2>
|
||||
|
||||
<p>Les directives de conteneur d'autorisation <code class="directive"><a href="#requireall"><RequireAll></a></code>,
|
||||
<code class="directive"><a href="#requireany"><RequireAny></a></code> et <code class="directive"><a href="#requirenone"><RequireNone></a></code>
|
||||
peuvent <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"><Directory /www/mydocs>
|
||||
<RequireAll>
|
||||
<RequireAny>
|
||||
Require user superadmin
|
||||
<RequireAll>
|
||||
Require group admins
|
||||
Require ldap-group cn=Administrateurs,o=Airius
|
||||
<RequireAny>
|
||||
Require group ventes
|
||||
Require ldap-attribute dept="ventes"
|
||||
</RequireAny>
|
||||
</RequireAll>
|
||||
</RequireAny>
|
||||
<RequireNone>
|
||||
Require group temps
|
||||
Require ldap-group cn=Employ<6F>s temporaires,o=Airius
|
||||
</RequireNone>
|
||||
</RequireAll>
|
||||
</Directory></pre>
|
||||
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="requiredirectives" id="requiredirectives">Les directives Require</a></h2>
|
||||
|
||||
<p>Le module <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code> met <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
|
||||
<Directory /docroot>
|
||||
Require env let_me_in
|
||||
</Directory></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"><RequireAny>
|
||||
<20>Require method GET POST OPTIONS
|
||||
<20>Require valid-user
|
||||
</RequireAny></pre>
|
||||
|
||||
|
||||
|
||||
<h3><a name="reqexpr" id="reqexpr">Require expr</a></h3>
|
||||
|
||||
<p>Le fournisseur <code>expr</code> permet d'accorder l'autorisation
|
||||
d'acc<63>s en fonction d'expressions arbitraires.</p>
|
||||
|
||||
<pre class="prettyprint lang-config">Require expr %{TIME_HOUR} -ge 9 && %{TIME_HOUR} -le 17</pre>
|
||||
|
||||
|
||||
<pre class="prettyprint lang-config"><RequireAll>
|
||||
Require expr "!(%{QUERY_STRING} =~ /secret/)"
|
||||
Require expr "%{REQUEST_URI} in { '/example.cgi', '/other.cgi' }"
|
||||
</RequireAll></pre>
|
||||
|
||||
|
||||
<pre class="prettyprint lang-config">Require expr "!(%{QUERY_STRING} =~ /secret/) && %{REQUEST_URI} in { '/example.cgi', '/other.cgi' }"</pre>
|
||||
|
||||
|
||||
<p>La syntaxe de l'expression est 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"><AuthzProviderAlias ldap-group ldap-group-alias1 cn=my-group,o=ctx>
|
||||
AuthLDAPBindDN cn=youruser,o=ctx
|
||||
AuthLDAPBindPassword yourpassword
|
||||
AuthLDAPURL ldap://ldap.host/o=ctx
|
||||
</AuthzProviderAlias>
|
||||
|
||||
<AuthzProviderAlias ldap-group ldap-group-alias2 cn=my-other-group,o=dev>
|
||||
AuthLDAPBindDN cn=yourotheruser,o=dev
|
||||
AuthLDAPBindPassword yourotherpassword
|
||||
AuthLDAPURL ldap://other.ldap.host/o=dev?cn
|
||||
</AuthzProviderAlias>
|
||||
|
||||
Alias /secure /webpages/secure
|
||||
<Directory /webpages/secure>
|
||||
Require all granted
|
||||
|
||||
AuthBasicProvider file
|
||||
|
||||
AuthType Basic
|
||||
AuthName LDAP_Protected_Place
|
||||
|
||||
#Op<4F>ration logique implicite : OU inclusif
|
||||
Require ldap-group-alias1
|
||||
Require ldap-group-alias2
|
||||
</Directory></pre>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="authmerging" id="authmerging">Directive</a> <a name="AuthMerging" id="AuthMerging">AuthMerging</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>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"><RequireAll></a></code>,
|
||||
<code class="directive"><a href="#requireany"><RequireAny></a></code> et <code class="directive"><a href="#requirenone"><RequireNone></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"><Directory /www/mydocs>
|
||||
<RequireAll>
|
||||
<RequireAny>
|
||||
Require user superadmin
|
||||
<RequireAll>
|
||||
Require group admins
|
||||
Require ldap-group cn=Administrateurs,o=Airius
|
||||
<RequireAny>
|
||||
Require group ventes
|
||||
Require ldap-attribute dept="ventes"
|
||||
</RequireAny>
|
||||
</RequireAll>
|
||||
</RequireAny>
|
||||
<RequireNone>
|
||||
Require group temps
|
||||
Require ldap-group cn=Employ<6F>s temporaires,o=Airius
|
||||
</RequireNone>
|
||||
</RequireAll>
|
||||
</Directory></pre>
|
||||
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="requiredirectives" id="requiredirectives">Les directives Require</a></h2>
|
||||
|
||||
<p>Le module <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code> met <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
|
||||
<Directory /docroot>
|
||||
Require env let_me_in
|
||||
</Directory></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"><RequireAny>
|
||||
<20>Require method GET POST OPTIONS
|
||||
<20>Require valid-user
|
||||
</RequireAny></pre>
|
||||
|
||||
|
||||
|
||||
<h3><a name="reqexpr" id="reqexpr">Require expr</a></h3>
|
||||
|
||||
<p>Le fournisseur <code>expr</code> permet d'accorder l'autorisation
|
||||
d'acc<63>s en fonction d'expressions arbitraires.</p>
|
||||
|
||||
<pre class="prettyprint lang-config">Require expr %{TIME_HOUR} -ge 9 && %{TIME_HOUR} -le 17</pre>
|
||||
|
||||
|
||||
<pre class="prettyprint lang-config"><RequireAll>
|
||||
Require expr "!(%{QUERY_STRING} =~ /secret/)"
|
||||
Require expr "%{REQUEST_URI} in { '/example.cgi', '/other.cgi' }"
|
||||
</RequireAll></pre>
|
||||
|
||||
|
||||
<pre class="prettyprint lang-config">Require expr "!(%{QUERY_STRING} =~ /secret/) && %{REQUEST_URI} in { '/example.cgi', '/other.cgi' }"</pre>
|
||||
|
||||
|
||||
<p>La syntaxe de l'expression est 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"><AuthzProviderAlias ldap-group ldap-group-alias1 cn=my-group,o=ctx>
|
||||
AuthLDAPBindDN cn=youruser,o=ctx
|
||||
AuthLDAPBindPassword yourpassword
|
||||
AuthLDAPURL ldap://ldap.host/o=ctx
|
||||
</AuthzProviderAlias>
|
||||
|
||||
<AuthzProviderAlias ldap-group ldap-group-alias2 cn=my-other-group,o=dev>
|
||||
AuthLDAPBindDN cn=yourotheruser,o=dev
|
||||
AuthLDAPBindPassword yourotherpassword
|
||||
AuthLDAPURL ldap://other.ldap.host/o=dev?cn
|
||||
</AuthzProviderAlias>
|
||||
|
||||
Alias /secure /webpages/secure
|
||||
<Directory /webpages/secure>
|
||||
Require all granted
|
||||
|
||||
AuthBasicProvider file
|
||||
|
||||
AuthType Basic
|
||||
AuthName LDAP_Protected_Place
|
||||
|
||||
#Op<4F>ration logique implicite : OU inclusif
|
||||
Require ldap-group-alias1
|
||||
Require ldap-group-alias2
|
||||
</Directory></pre>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
|
||||
@@ -71,6 +71,90 @@
|
||||
<li><code class="directive"><a href="../mod/mod_dbd.html#dbdparams">DBDParams</a></code></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AuthzDBDLoginToReferer" id="AuthzDBDLoginToReferer">AuthzDBDLoginToReferer</a> <a name="authzdbdlogintoreferer" id="authzdbdlogintoreferer">Directive</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Determines whether to redirect the Client to the Referring
|
||||
page on successful login or logout if a <code>Referer</code> request
|
||||
header is present</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthzDBDLoginToReferer On|Off</code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthzDBDLoginToReferer Off</code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authz_dbd</td></tr>
|
||||
</table>
|
||||
<p>In conjunction with <code>Require dbd-login</code> or
|
||||
<code>Require dbd-logout</code>, this provides the option to
|
||||
redirect the client back to the Referring page (the URL in
|
||||
the <code>Referer</code> HTTP request header, if present).
|
||||
When there is no <code>Referer</code> header,
|
||||
<code>AuthzDBDLoginToReferer On</code> will be ignored.</p>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AuthzDBDQuery" id="AuthzDBDQuery">AuthzDBDQuery</a> <a name="authzdbdquery" id="authzdbdquery">Directive</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specify the SQL Query for the required operation</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthzDBDQuery <var>query</var></code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authz_dbd</td></tr>
|
||||
</table>
|
||||
<p>The <code class="directive">AuthzDBDQuery</code> specifies an SQL
|
||||
query to run. The purpose of the query depends on the
|
||||
<code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> directive in
|
||||
effect.</p>
|
||||
<ul>
|
||||
<li>When used with a <code>Require dbd-group</code> directive,
|
||||
it specifies a query to look up groups for the current user. This is
|
||||
the standard functionality of other authorization modules such as
|
||||
<code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> and <code class="module"><a href="../mod/mod_authz_dbm.html">mod_authz_dbm</a></code>.
|
||||
The first column value of each row returned by the query statement
|
||||
should be a string containing a group name. Zero, one, or more rows
|
||||
may be returned.
|
||||
<pre class="prettyprint lang-config">Require dbd-group
|
||||
AuthzDBDQuery "SELECT group FROM groups WHERE user = %s"</pre>
|
||||
|
||||
</li>
|
||||
<li>When used with a <code>Require dbd-login</code> or
|
||||
<code>Require dbd-logout</code> directive, it will never deny access,
|
||||
but will instead execute a SQL statement designed to log the user
|
||||
in or out. The user must already be authenticated with
|
||||
<code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.
|
||||
<pre class="prettyprint lang-config">Require dbd-login
|
||||
AuthzDBDQuery "UPDATE authn SET login = 'true' WHERE user = %s"</pre>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<p>In all cases, the user's ID will be passed as a single string
|
||||
parameter when the SQL query is executed. It may be referenced within
|
||||
the query statement using a <code>%s</code> format specifier.</p>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AuthzDBDRedirectQuery" id="AuthzDBDRedirectQuery">AuthzDBDRedirectQuery</a> <a name="authzdbdredirectquery" id="authzdbdredirectquery">Directive</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specify a query to look up a login page for the user</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthzDBDRedirectQuery <var>query</var></code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authz_dbd</td></tr>
|
||||
</table>
|
||||
<p>Specifies an optional SQL query to use after successful login
|
||||
(or logout) to redirect the user to a URL, which may be
|
||||
specific to the user. The user's ID will be passed as a single string
|
||||
parameter when the SQL query is executed. It may be referenced within
|
||||
the query statement using a <code>%s</code> format specifier.</p>
|
||||
<pre class="prettyprint lang-config">AuthzDBDRedirectQuery "SELECT userpage FROM userpages WHERE user = %s"</pre>
|
||||
|
||||
<p>The first column value of the first row returned by the query
|
||||
statement should be a string containing a URL to which to redirect
|
||||
the client. Subsequent rows will be ignored. If no rows are returned,
|
||||
the client will not be redirected.</p>
|
||||
<p>Note that <code class="directive">AuthzDBDLoginToReferer</code> takes
|
||||
precedence if both are set.</p>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="requiredirectives" id="requiredirectives">The Require Directives</a></h2>
|
||||
|
||||
@@ -210,90 +294,6 @@ DBDExptime 300
|
||||
<p>Please read <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> documentation for more information
|
||||
about security on this scope.</p>
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AuthzDBDLoginToReferer" id="AuthzDBDLoginToReferer">AuthzDBDLoginToReferer</a> <a name="authzdbdlogintoreferer" id="authzdbdlogintoreferer">Directive</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Determines whether to redirect the Client to the Referring
|
||||
page on successful login or logout if a <code>Referer</code> request
|
||||
header is present</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthzDBDLoginToReferer On|Off</code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthzDBDLoginToReferer Off</code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authz_dbd</td></tr>
|
||||
</table>
|
||||
<p>In conjunction with <code>Require dbd-login</code> or
|
||||
<code>Require dbd-logout</code>, this provides the option to
|
||||
redirect the client back to the Referring page (the URL in
|
||||
the <code>Referer</code> HTTP request header, if present).
|
||||
When there is no <code>Referer</code> header,
|
||||
<code>AuthzDBDLoginToReferer On</code> will be ignored.</p>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AuthzDBDQuery" id="AuthzDBDQuery">AuthzDBDQuery</a> <a name="authzdbdquery" id="authzdbdquery">Directive</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specify the SQL Query for the required operation</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthzDBDQuery <var>query</var></code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authz_dbd</td></tr>
|
||||
</table>
|
||||
<p>The <code class="directive">AuthzDBDQuery</code> specifies an SQL
|
||||
query to run. The purpose of the query depends on the
|
||||
<code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> directive in
|
||||
effect.</p>
|
||||
<ul>
|
||||
<li>When used with a <code>Require dbd-group</code> directive,
|
||||
it specifies a query to look up groups for the current user. This is
|
||||
the standard functionality of other authorization modules such as
|
||||
<code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> and <code class="module"><a href="../mod/mod_authz_dbm.html">mod_authz_dbm</a></code>.
|
||||
The first column value of each row returned by the query statement
|
||||
should be a string containing a group name. Zero, one, or more rows
|
||||
may be returned.
|
||||
<pre class="prettyprint lang-config">Require dbd-group
|
||||
AuthzDBDQuery "SELECT group FROM groups WHERE user = %s"</pre>
|
||||
|
||||
</li>
|
||||
<li>When used with a <code>Require dbd-login</code> or
|
||||
<code>Require dbd-logout</code> directive, it will never deny access,
|
||||
but will instead execute a SQL statement designed to log the user
|
||||
in or out. The user must already be authenticated with
|
||||
<code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.
|
||||
<pre class="prettyprint lang-config">Require dbd-login
|
||||
AuthzDBDQuery "UPDATE authn SET login = 'true' WHERE user = %s"</pre>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<p>In all cases, the user's ID will be passed as a single string
|
||||
parameter when the SQL query is executed. It may be referenced within
|
||||
the query statement using a <code>%s</code> format specifier.</p>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AuthzDBDRedirectQuery" id="AuthzDBDRedirectQuery">AuthzDBDRedirectQuery</a> <a name="authzdbdredirectquery" id="authzdbdredirectquery">Directive</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specify a query to look up a login page for the user</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthzDBDRedirectQuery <var>query</var></code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authz_dbd</td></tr>
|
||||
</table>
|
||||
<p>Specifies an optional SQL query to use after successful login
|
||||
(or logout) to redirect the user to a URL, which may be
|
||||
specific to the user. The user's ID will be passed as a single string
|
||||
parameter when the SQL query is executed. It may be referenced within
|
||||
the query statement using a <code>%s</code> format specifier.</p>
|
||||
<pre class="prettyprint lang-config">AuthzDBDRedirectQuery "SELECT userpage FROM userpages WHERE user = %s"</pre>
|
||||
|
||||
<p>The first column value of the first row returned by the query
|
||||
statement should be a string containing a URL to which to redirect
|
||||
the client. Subsequent rows will be ignored. If no rows are returned,
|
||||
the client will not be redirected.</p>
|
||||
<p>Note that <code class="directive">AuthzDBDLoginToReferer</code> takes
|
||||
precedence if both are set.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>Available Languages: </span><a href="../en/mod/mod_authz_dbd.html" title="English"> en </a> |
|
||||
|
||||
@@ -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"> en </a> |
|
||||
|
||||
@@ -53,55 +53,6 @@
|
||||
<li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="requiredirectives" id="requiredirectives">The Require Directives</a></h2>
|
||||
|
||||
<p>Apache's <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>
|
||||
directives are used during the authorization phase to ensure that
|
||||
a user is allowed to access a resource. mod_authz_dbm extends the
|
||||
authorization types with <code>dbm-group</code>.</p>
|
||||
|
||||
<p>Since v2.4.8, <a href="../expr.html">expressions</a> are supported
|
||||
within the DBM require directives.</p>
|
||||
|
||||
<h3><a name="reqgroup" id="reqgroup">Require dbm-group</a></h3>
|
||||
|
||||
<p>This directive specifies group membership that is required for the
|
||||
user to gain access.</p>
|
||||
|
||||
<pre class="prettyprint lang-config">Require dbm-group admin</pre>
|
||||
|
||||
|
||||
|
||||
|
||||
<h3><a name="reqfilegroup" id="reqfilegroup">Require dbm-file-group</a></h3>
|
||||
|
||||
<p>When this directive is specified, the user must be a member of the group
|
||||
assigned to the file being accessed.</p>
|
||||
|
||||
<pre class="prettyprint lang-config">Require dbm-file-group</pre>
|
||||
|
||||
|
||||
|
||||
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="examples" id="examples">Example usage</a></h2>
|
||||
|
||||
<p><em>Note that using mod_authz_dbm requires you to require <code>dbm-group</code>
|
||||
instead of <code>group</code>:</em>
|
||||
</p>
|
||||
<pre class="prettyprint lang-config"><Directory "/foo/bar">
|
||||
AuthType Basic
|
||||
AuthName "Secure Area"
|
||||
AuthBasicProvider dbm
|
||||
AuthDBMUserFile "site/data/users"
|
||||
AuthDBMGroupFile "site/data/users"
|
||||
Require dbm-group admin
|
||||
</Directory></pre>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AuthDBMGroupFile" id="AuthDBMGroupFile">AuthDBMGroupFile</a> <a name="authdbmgroupfile" id="authdbmgroupfile">Directive</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets the name of the database file containing the list
|
||||
@@ -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"><Directory "/foo/bar">
|
||||
AuthType Basic
|
||||
AuthName "Secure Area"
|
||||
AuthBasicProvider dbm
|
||||
AuthDBMUserFile "site/data/users"
|
||||
AuthDBMGroupFile "site/data/users"
|
||||
Require dbm-group admin
|
||||
</Directory></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
|
||||
@@ -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"><Directory "/foo/bar">
|
||||
AuthType Basic
|
||||
AuthName "Secure Area"
|
||||
AuthBasicProvider dbm
|
||||
AuthDBMUserFile site/data/users
|
||||
AuthDBMGroupFile site/data/users
|
||||
Require dbm-group admin
|
||||
</Directory></pre>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="authdbmgroupfile" id="authdbmgroupfile">Directive</a> <a name="AuthDBMGroupFile" id="AuthDBMGroupFile">AuthDBMGroupFile</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>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"><Directory "/foo/bar">
|
||||
AuthType Basic
|
||||
AuthName "Secure Area"
|
||||
AuthBasicProvider dbm
|
||||
AuthDBMUserFile site/data/users
|
||||
AuthDBMGroupFile site/data/users
|
||||
Require dbm-group admin
|
||||
</Directory></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
|
||||
@@ -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"> en </a> |
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -53,7 +53,6 @@
|
||||
<ul class="seealso">
|
||||
<li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AuthGroupFile" id="AuthGroupFile">AuthGroupFile</a> <a name="authgroupfile" id="authgroupfile">ディレクティブ</a></h2>
|
||||
<table class="directive">
|
||||
@@ -95,6 +94,7 @@
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>翻訳済み言語: </span><a href="../en/mod/mod_authz_groupfile.html" hreflang="en" rel="alternate" title="English"> en </a> |
|
||||
|
||||
@@ -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"> en </a> |
|
||||
|
||||
@@ -104,108 +104,6 @@
|
||||
<li><img alt="" src="../images/down.gif" /> <a href="#query">Autoindex Request Query Arguments</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="query" id="query">Autoindex Request Query Arguments</a></h2>
|
||||
|
||||
|
||||
<p>Various query string arguments are available to give the client
|
||||
some control over the ordering of the directory listing, as well as
|
||||
what files are listed. If you do not wish to give the client this
|
||||
control, the <code><a href="#indexoptions.ignoreclient">IndexOptions
|
||||
IgnoreClient</a></code> option disables that functionality.</p>
|
||||
|
||||
<p>The column sorting headers themselves are self-referencing
|
||||
hyperlinks that add the sort query options shown below. Any
|
||||
option below may be added to any request for the directory
|
||||
resource.</p>
|
||||
|
||||
<ul>
|
||||
<li><code>C=N</code> sorts the directory by file name</li>
|
||||
|
||||
<li><code>C=M</code> sorts the directory by last-modified
|
||||
date, then file name</li>
|
||||
|
||||
<li><code>C=S</code> sorts the directory by size, then file
|
||||
name</li>
|
||||
|
||||
<li class="separate"><code>C=D</code> sorts the directory by description, then
|
||||
file name</li>
|
||||
|
||||
<li><code>O=A</code> sorts the listing in Ascending
|
||||
Order</li>
|
||||
|
||||
<li class="separate"><code>O=D</code> sorts the listing in Descending
|
||||
Order</li>
|
||||
|
||||
<li><code>F=0</code> formats the listing as a simple list
|
||||
(not FancyIndexed)</li>
|
||||
|
||||
<li><code>F=1</code> formats the listing as a FancyIndexed
|
||||
list</li>
|
||||
|
||||
<li class="separate"><code>F=2</code> formats the listing as an
|
||||
HTMLTable FancyIndexed list</li>
|
||||
|
||||
<li><code>V=0</code> disables version sorting</li>
|
||||
|
||||
<li class="separate"><code>V=1</code> enables version sorting</li>
|
||||
|
||||
<li><code>P=<var>pattern</var></code> lists only files matching
|
||||
the given <var>pattern</var></li>
|
||||
</ul>
|
||||
|
||||
<p>Note that the 'P'attern query argument is tested
|
||||
<em>after</em> the usual <code class="directive"><a href="#indexignore">IndexIgnore</a></code> directives are processed,
|
||||
and all file names are still subjected to the same criteria as
|
||||
any other autoindex listing. The Query Arguments parser in
|
||||
<code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> will stop abruptly when an unrecognized
|
||||
option is encountered. The Query Arguments must be well formed,
|
||||
according to the table above.</p>
|
||||
|
||||
<p>The simple example below, which can be clipped and saved in
|
||||
a header.html file, illustrates these query options. Note that
|
||||
the unknown "X" argument, for the submit button, is listed last
|
||||
to assure the arguments are all parsed before mod_autoindex
|
||||
encounters the X=Go input.</p>
|
||||
|
||||
<div class="example"><p><code>
|
||||
<form action="" method="get"><br />
|
||||
<span class="indent">
|
||||
Show me a <select name="F"><br />
|
||||
<span class="indent">
|
||||
<option value="0"> Plain list</option><br />
|
||||
<option value="1" selected="selected"> Fancy list</option><br />
|
||||
<option value="2"> Table list</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
Sorted by <select name="C"><br />
|
||||
<span class="indent">
|
||||
<option value="N" selected="selected"> Name</option><br />
|
||||
<option value="M"> Date Modified</option><br />
|
||||
<option value="S"> Size</option><br />
|
||||
<option value="D"> Description</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
<select name="O"><br />
|
||||
<span class="indent">
|
||||
<option value="A" selected="selected"> Ascending</option><br />
|
||||
<option value="D"> Descending</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
<select name="V"><br />
|
||||
<span class="indent">
|
||||
<option value="0" selected="selected"> in Normal order</option><br />
|
||||
<option value="1"> in Version order</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
Matching <input type="text" name="P" value="*" /><br />
|
||||
<input type="submit" name="X" value="Go" /><br />
|
||||
</span>
|
||||
</form>
|
||||
</code></p></div>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AddAlt" id="AddAlt">AddAlt</a> <a name="addalt" id="addalt">Directive</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Alternate text to display for a file, instead of an
|
||||
@@ -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>
|
||||
<form action="" method="get"><br />
|
||||
<span class="indent">
|
||||
Show me a <select name="F"><br />
|
||||
<span class="indent">
|
||||
<option value="0"> Plain list</option><br />
|
||||
<option value="1" selected="selected"> Fancy list</option><br />
|
||||
<option value="2"> Table list</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
Sorted by <select name="C"><br />
|
||||
<span class="indent">
|
||||
<option value="N" selected="selected"> Name</option><br />
|
||||
<option value="M"> Date Modified</option><br />
|
||||
<option value="S"> Size</option><br />
|
||||
<option value="D"> Description</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
<select name="O"><br />
|
||||
<span class="indent">
|
||||
<option value="A" selected="selected"> Ascending</option><br />
|
||||
<option value="D"> Descending</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
<select name="V"><br />
|
||||
<span class="indent">
|
||||
<option value="0" selected="selected"> in Normal order</option><br />
|
||||
<option value="1"> in Version order</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
Matching <input type="text" name="P" value="*" /><br />
|
||||
<input type="submit" name="X" value="Go" /><br />
|
||||
</span>
|
||||
</form>
|
||||
</code></p></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
|
||||
@@ -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>
|
||||
<form action="" method="get"><br />
|
||||
<span class="indent">
|
||||
Montre moi une <select name="F"><br />
|
||||
<span class="indent">
|
||||
<option value="0"> liste simple</option><br />
|
||||
<option value="1" selected="selected"> liste avec
|
||||
en-t<>tes</option><br />
|
||||
<option value="2"> liste avec en-t<>te sous forme de
|
||||
table</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
tri<72>e par <select name="C"><br />
|
||||
<span class="indent">
|
||||
<option value="N" selected="selected"> nom</option><br />
|
||||
<option value="M"> date de modification</option><br />
|
||||
<option value="S"> taille</option><br />
|
||||
<option value="D"> description</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
<select name="O"><br />
|
||||
<span class="indent">
|
||||
<option value="A" selected="selected"> croissant</option><br />
|
||||
<option value="D"> d<>croissant</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
<select name="V"><br />
|
||||
<span class="indent">
|
||||
<option value="0" selected="selected"> dans l'ordre
|
||||
normal</option><br />
|
||||
<option value="1"> en fonction de la version</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
correspondant <20> <input type="text" name="P" value="*" /><br />
|
||||
<input type="submit" name="X" value="Go" /><br />
|
||||
</span>
|
||||
</form>
|
||||
</code></p></div>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="addalt" id="addalt">Directive</a> <a name="AddAlt" id="AddAlt">AddAlt</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Texte optionnel <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>
|
||||
<form action="" method="get"><br />
|
||||
<span class="indent">
|
||||
Montre moi une <select name="F"><br />
|
||||
<span class="indent">
|
||||
<option value="0"> liste simple</option><br />
|
||||
<option value="1" selected="selected"> liste avec
|
||||
en-t<>tes</option><br />
|
||||
<option value="2"> liste avec en-t<>te sous forme de
|
||||
table</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
tri<72>e par <select name="C"><br />
|
||||
<span class="indent">
|
||||
<option value="N" selected="selected"> nom</option><br />
|
||||
<option value="M"> date de modification</option><br />
|
||||
<option value="S"> taille</option><br />
|
||||
<option value="D"> description</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
<select name="O"><br />
|
||||
<span class="indent">
|
||||
<option value="A" selected="selected"> croissant</option><br />
|
||||
<option value="D"> d<>croissant</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
<select name="V"><br />
|
||||
<span class="indent">
|
||||
<option value="0" selected="selected"> dans l'ordre
|
||||
normal</option><br />
|
||||
<option value="1"> en fonction de la version</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
correspondant <20> <input type="text" name="P" value="*" /><br />
|
||||
<input type="submit" name="X" value="Go" /><br />
|
||||
</span>
|
||||
</form>
|
||||
</code></p></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
|
||||
@@ -113,116 +113,6 @@
|
||||
<li><img alt="" src="../images/down.gif" /> <a href="#query">Autoindex リクエストクエリー引数</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="query" id="query">Autoindex リクエストクエリー引数</a></h2>
|
||||
|
||||
|
||||
<p>Apache 2.0.23 で、
|
||||
コラムソートのためにクエリー引数を再編成して、
|
||||
新しいクエリーオプションのグループを導入しました。
|
||||
出力に対するクライアントのすべての制御を効率的に抹消
|
||||
できるように、
|
||||
<code><a href="#indexoptions.ignoreclient">IndexOptions
|
||||
IgnoreClient</a></code> が導入されました。</p>
|
||||
|
||||
<p>コラムソートのヘッダそれ自体が、
|
||||
下記のソートクエリーオプションを付加する
|
||||
自分自身を参照するリンクです。
|
||||
下記のオプションのどれでも、
|
||||
ディレクトリリソースへのリクエストに加えることができます。</p>
|
||||
|
||||
<ul>
|
||||
<li><code>C=N</code> は、ファイル名でソートします。</li>
|
||||
|
||||
<li><code>C=M</code> は、更新日時、
|
||||
ディレクトリ、ファイル名の順でソートします。</li>
|
||||
|
||||
<li><code>C=S</code> は、サイズ、
|
||||
ディレクトリ、ファイル名の順でソートします。</li>
|
||||
|
||||
<li class="separate"><code>C=D</code> は、説明、
|
||||
ディレクトリ、ファイル名の順でソートします。</li>
|
||||
|
||||
<li><code>O=A</code> は、昇順で表をソートします。</li>
|
||||
|
||||
<li class="separate"><code>O=D</code> は、降順で表をソートします。</li>
|
||||
|
||||
<li><code>F=0</code> は、単純な表の書式にします。
|
||||
(FancyIndex ではありません。)</li>
|
||||
|
||||
<li><code>F=1</code> は、FancyIndex
|
||||
表示の表の書式にします。</li>
|
||||
|
||||
<li><code>F=2</code> は、表を HTML
|
||||
のテーブルを使った FancyIndex の書式にします。</li>
|
||||
|
||||
<li><code>V=0</code>
|
||||
は、バージョンによるソートを無効にします。</li>
|
||||
|
||||
<li class="separate"><code>V=1</code>
|
||||
は、バージョンによるソートを有効にします。</li>
|
||||
|
||||
<li><code>P=<var>pattern</var></code>
|
||||
は、与えられた <var>pattern</var>
|
||||
に適合したファイルのみを表示します。</li>
|
||||
</ul>
|
||||
|
||||
<p>"P (パターンの P)" クエリー引数は、
|
||||
通常の <code class="directive"><a href="#indexignore">IndexIgnore</a></code>
|
||||
ディレクティブが処理された<em>後</em>に検査され、
|
||||
ファイル名全てが、他の autoindex
|
||||
リスト処理と同様の判定基準下に置かれ続ける
|
||||
ことに注意してください。
|
||||
<code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> のクエリー引数パーサ (解析) は、
|
||||
認識不能なオプションにぶつかると即座に停止します。
|
||||
クエリー引数は上の表に従って
|
||||
正しい形式になっていなければなりません。</p>
|
||||
|
||||
<p>下の単純な例は、これらのクエリーオプションを
|
||||
表します。これをそのまま切り取って HEADER.html
|
||||
ファイルに保存することもできます。
|
||||
mod_autoindex が X=Go 入力にぶつかる前に
|
||||
引数が全て解釈されるように、
|
||||
未知の引数 "X" はリストの最後に置かれています。</p>
|
||||
|
||||
<div class="example"><p><code>
|
||||
<form action="" method="get"><br />
|
||||
<span class="indent">
|
||||
Show me a <select name="F"><br />
|
||||
<span class="indent">
|
||||
<option value="0"> Plain list</option><br />
|
||||
<option value="1" selected="selected"> Fancy list</option><br />
|
||||
<option value="2"> Table list</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
Sorted by <select name="C"><br />
|
||||
<span class="indent">
|
||||
<option value="N" selected="selected"> Name</option><br />
|
||||
<option value="M"> Date Modified</option><br />
|
||||
<option value="S"> Size</option><br />
|
||||
<option value="D"> Description</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
<select name="O"><br />
|
||||
<span class="indent">
|
||||
<option value="A" selected="selected"> Ascending</option><br />
|
||||
<option value="D"> Descending</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
<select name="V"><br />
|
||||
<span class="indent">
|
||||
<option value="0" selected="selected"> in Normal order</option><br />
|
||||
<option value="1"> in Version order</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
Matching <input type="text" name="P" value="*" /><br />
|
||||
<input type="submit" name="X" value="Go" /><br />
|
||||
</span>
|
||||
</form>
|
||||
</code></p></div>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AddAlt" id="AddAlt">AddAlt</a> <a name="addalt" id="addalt">ディレクティブ</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>アイコンの代わりに
|
||||
@@ -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>
|
||||
<form action="" method="get"><br />
|
||||
<span class="indent">
|
||||
Show me a <select name="F"><br />
|
||||
<span class="indent">
|
||||
<option value="0"> Plain list</option><br />
|
||||
<option value="1" selected="selected"> Fancy list</option><br />
|
||||
<option value="2"> Table list</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
Sorted by <select name="C"><br />
|
||||
<span class="indent">
|
||||
<option value="N" selected="selected"> Name</option><br />
|
||||
<option value="M"> Date Modified</option><br />
|
||||
<option value="S"> Size</option><br />
|
||||
<option value="D"> Description</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
<select name="O"><br />
|
||||
<span class="indent">
|
||||
<option value="A" selected="selected"> Ascending</option><br />
|
||||
<option value="D"> Descending</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
<select name="V"><br />
|
||||
<span class="indent">
|
||||
<option value="0" selected="selected"> in Normal order</option><br />
|
||||
<option value="1"> in Version order</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
Matching <input type="text" name="P" value="*" /><br />
|
||||
<input type="submit" name="X" value="Go" /><br />
|
||||
</span>
|
||||
</form>
|
||||
</code></p></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
|
||||
@@ -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>
|
||||
<form action="" method="get"><br />
|
||||
<span class="indent">
|
||||
Show me a <select name="F"><br />
|
||||
<span class="indent">
|
||||
<option value="0"> Plain list</option><br />
|
||||
<option value="1" selected="selected"> Fancy list</option><br />
|
||||
<option value="2"> Table list</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
Sorted by <select name="C"><br />
|
||||
<span class="indent">
|
||||
<option value="N" selected="selected"> Name</option><br />
|
||||
<option value="M"> Date Modified</option><br />
|
||||
<option value="S"> Size</option><br />
|
||||
<option value="D"> Description</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
<select name="O"><br />
|
||||
<span class="indent">
|
||||
<option value="A" selected="selected"> Ascending</option><br />
|
||||
<option value="D"> Descending</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
<select name="V"><br />
|
||||
<span class="indent">
|
||||
<option value="0" selected="selected"> in Normal order</option><br />
|
||||
<option value="1"> in Version order</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
Matching <input type="text" name="P" value="*" /><br />
|
||||
<input type="submit" name="X" value="Go" /><br />
|
||||
</span>
|
||||
</form>
|
||||
</code></p></div>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AddAlt" id="AddAlt">AddAlt</a> <a name="addalt" id="addalt"><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>
|
||||
<form action="" method="get"><br />
|
||||
<span class="indent">
|
||||
Show me a <select name="F"><br />
|
||||
<span class="indent">
|
||||
<option value="0"> Plain list</option><br />
|
||||
<option value="1" selected="selected"> Fancy list</option><br />
|
||||
<option value="2"> Table list</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
Sorted by <select name="C"><br />
|
||||
<span class="indent">
|
||||
<option value="N" selected="selected"> Name</option><br />
|
||||
<option value="M"> Date Modified</option><br />
|
||||
<option value="S"> Size</option><br />
|
||||
<option value="D"> Description</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
<select name="O"><br />
|
||||
<span class="indent">
|
||||
<option value="A" selected="selected"> Ascending</option><br />
|
||||
<option value="D"> Descending</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
<select name="V"><br />
|
||||
<span class="indent">
|
||||
<option value="0" selected="selected"> in Normal order</option><br />
|
||||
<option value="1"> in Version order</option><br />
|
||||
</span>
|
||||
</select><br />
|
||||
Matching <input type="text" name="P" value="*" /><br />
|
||||
<input type="submit" name="X" value="Go" /><br />
|
||||
</span>
|
||||
</form>
|
||||
</code></p></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
|
||||
@@ -97,98 +97,6 @@ yaptığı gibi dizin içeriğini listeler.</td></tr>
|
||||
<li><img alt="" src="../images/down.gif" /> <a href="#query">Sütun Sıralamada Sorgu Seçenekleri</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="query" id="query">Sütun Sıralamada Sorgu Seçenekleri</a></h2>
|
||||
|
||||
|
||||
<p>İstemciye, dizin içeriğini listelerken neleri hangi sırada
|
||||
listeleyeceğini belirleyebilmesi için içerik üzerinde biraz denetim
|
||||
sağlayabileceği çeşitli sorgu dizgesi bileşenleri sağlanmıştır.
|
||||
Çıktı üzerinde kullanıcı denetimini tamamen ortadan kaldırmak için
|
||||
<code class="directive"><a href="#indexoptions">IndexOptions</a></code> yönergesinin
|
||||
<code><a href="#indexoptions.ignoreclient">IgnoreClient</a></code>
|
||||
seçeneği kullanılabilir.</p>
|
||||
|
||||
<p>Sütun sıralama başlıklarının her biri hedefi kendisi olan birer hiper
|
||||
bağ olup aşağıda sıralanan sorgu seçeneklerini kullanırlar. Bu
|
||||
seçeneklerin her biri her dizin içerik listesi isteğine eklenebilir.</p>
|
||||
|
||||
<ul>
|
||||
<li><code>C=N</code> dizini dosya adına göre sıralar</li>
|
||||
|
||||
<li><code>C=M</code> dizini son değişiklik zamanına ve ardından dosya
|
||||
ismine göre sıralar.</li>
|
||||
|
||||
<li><code>C=S</code> dizini boyuta ve ardından dosya adına göre
|
||||
sıralar</li>
|
||||
|
||||
<li class="separate"><code>C=D</code> dizini açıklamaya ve ardından
|
||||
dosya adına göre sıralar.</li>
|
||||
|
||||
<li><code>O=A</code> artan sıralama uygulanır.</li>
|
||||
|
||||
<li class="separate"><code>O=D</code> azalan sıralama uygulanır.</li>
|
||||
|
||||
<li><code>F=0</code> listeleme basit listeleme biçiminde yapılır
|
||||
(<code>FancyIndexing</code> seçeneği ile etkinleştirilen biçimde
|
||||
değil)</li>
|
||||
|
||||
<li><code>F=1</code> listeleme <code>FancyIndexing</code> seçeneği ile
|
||||
etkinleştirilen biçimde yapılır</li>
|
||||
|
||||
<li class="separate"><code>F=2</code> listeleme <code><a href="#indexoptions.fancyindexing">FancyIndexing</a></code> ve
|
||||
<code><a href="#indexoptions.htmltable">HTMLTable</a></code> seçeneği
|
||||
ile etkinleştirilen biçimde yapılır.</li>
|
||||
|
||||
<li><code>V=0</code> sürüme göre sıralama iptal edilir.</li>
|
||||
|
||||
<li class="separate"><code>V=1</code> sürüme göre sıralama etkin
|
||||
kılınır.</li>
|
||||
|
||||
<li><code>P=<var>kalıp</var></code> sadece belirtilen
|
||||
<code><em>kalıp</em></code> ile eşleşen dosyalar istelenir.</li>
|
||||
</ul>
|
||||
|
||||
<p><code>P=<var>kalıp</var></code> sorgu seçeneğinin normalde <code class="directive"><a href="#indexignore">IndexIgnore</a></code> yönergesi işleme
|
||||
sokulduktan sonra değerlendirildiğine ve dosya isimlerinin diğer
|
||||
kendiliğinden içerik listeleme koşullarının konusu olmaya devam ettiğine
|
||||
dikkat ediniz. <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> modülündeki Sorgu
|
||||
Seçenekleri çözümleyicisi tanımadığı bir seçeneğe rastlar rastlamaz
|
||||
işlemi durdurur. Sorgu Seçenekleri yukarıda belirtilene uygun olarak iyi
|
||||
biçimli olmak zorundadır.</p>
|
||||
|
||||
<p>Aşağıdaki basit örnekte sorgu seçeneklerinin kullanımı gösterilmiştir.
|
||||
Son satırda bulunan "submit" düğmesindeki tanınmayan "X" girdisine
|
||||
dikkat ediniz. "X=Göster" girdisi tüm seçenekler işlendikten sonra
|
||||
<code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> tarafından son argüman olarak ele
|
||||
alınacak ve çözümleme işlemi o noktada duracaktır.</p>
|
||||
|
||||
<div class="example"><pre><form action="" method="get">
|
||||
<input type="text" name="P" value="*" /> ile eşleşen
|
||||
<select name="C">
|
||||
<option value="N" selected="selected">isme</option>
|
||||
<option value="M"> değişiklik tarihine</option>
|
||||
<option value="S"> boyuta</option>
|
||||
<option value="D"> açıklamaya</option>
|
||||
</select> göre
|
||||
<select name="O">
|
||||
<option value="A" selected="selected"> artan</option>
|
||||
<option value="D"> azalan</option>
|
||||
</select>
|
||||
<select name="V">
|
||||
<option value="0" selected="selected">normal</option>
|
||||
<option value="1"> sürümlü</option>
|
||||
</select> sıralamayla bir
|
||||
<select name="F">
|
||||
<option value="0"> basit liste</option>
|
||||
<option value="1" selected="selected"> süslü liste</option>
|
||||
<option value="2"> tablolu liste</option>
|
||||
</select>
|
||||
<input type="submit" name="X" value="Göster" />
|
||||
</form></pre></div>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="AddAlt" id="AddAlt">AddAlt</a> <a name="addalt" id="addalt">Yönergesi</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Dosyaya göre seçilen simgenin yerinde gösterilecek metni belirler.
|
||||
@@ -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><form action="" method="get">
|
||||
<input type="text" name="P" value="*" /> ile eşleşen
|
||||
<select name="C">
|
||||
<option value="N" selected="selected">isme</option>
|
||||
<option value="M"> değişiklik tarihine</option>
|
||||
<option value="S"> boyuta</option>
|
||||
<option value="D"> açıklamaya</option>
|
||||
</select> göre
|
||||
<select name="O">
|
||||
<option value="A" selected="selected"> artan</option>
|
||||
<option value="D"> azalan</option>
|
||||
</select>
|
||||
<select name="V">
|
||||
<option value="0" selected="selected">normal</option>
|
||||
<option value="1"> sürümlü</option>
|
||||
</select> sıralamayla bir
|
||||
<select name="F">
|
||||
<option value="0"> basit liste</option>
|
||||
<option value="1" selected="selected"> süslü liste</option>
|
||||
<option value="2"> tablolu liste</option>
|
||||
</select>
|
||||
<input type="submit" name="X" value="Göster" />
|
||||
</form></pre></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
|
||||
@@ -78,7 +78,6 @@
|
||||
<ul class="seealso">
|
||||
<li><a href="../filter.html">Filters</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="BufferSize" id="BufferSize">BufferSize</a> <a name="buffersize" id="buffersize">Directive</a></h2>
|
||||
<table class="directive">
|
||||
@@ -95,6 +94,7 @@
|
||||
The default is 128 kilobytes.</p>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>Available Languages: </span><a href="../en/mod/mod_buffer.html" title="English"> en </a> |
|
||||
|
||||
@@ -81,7 +81,6 @@ d'Apache</td></tr></table>
|
||||
<ul class="seealso">
|
||||
<li><a href="../filter.html">Les filtres</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="buffersize" id="buffersize">Directive</a> <a name="BufferSize" id="BufferSize">BufferSize</a></h2>
|
||||
<table class="directive">
|
||||
@@ -98,6 +97,7 @@ d'Apache</td></tr></table>
|
||||
128 ko.</p>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_buffer.html" hreflang="en" rel="alternate" title="English"> en </a> |
|
||||
|
||||
@@ -163,191 +163,6 @@
|
||||
<li><a href="../caching.html">Caching Guide</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="related" id="related">Related Modules and Directives</a></h2>
|
||||
<table class="related"><tr><th>Related Modules</th><th>Related Directives</th></tr><tr><td><ul><li><code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code></li><li><code class="module"><a href="../mod/mod_cache_socache.html">mod_cache_socache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheroot">CacheRoot</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlevels">CacheDirLevels</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlength">CacheDirLength</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheminfilesize">CacheMinFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachemaxfilesize">CacheMaxFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocache">CacheSocache</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemaxtime">CacheSocacheMaxTime</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemintime">CacheSocacheMinTime</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemaxsize">CacheSocacheMaxSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachereadsize">CacheSocacheReadSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachereadtime">CacheSocacheReadTime</a></code></li></ul></td></tr></table>
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="sampleconf" id="sampleconf">Sample Configuration</a></h2>
|
||||
<div class="example"><h3>Sample httpd.conf</h3><pre class="prettyprint lang-config">#
|
||||
# Sample Cache Configuration
|
||||
#
|
||||
LoadModule cache_module modules/mod_cache.so
|
||||
<IfModule mod_cache.c>
|
||||
LoadModule cache_disk_module modules/mod_cache_disk.so
|
||||
<IfModule mod_cache_disk.c>
|
||||
CacheRoot c:/cacheroot
|
||||
CacheEnable disk /
|
||||
CacheDirLevels 5
|
||||
CacheDirLength 3
|
||||
</IfModule>
|
||||
|
||||
# When acting as a proxy, don't cache the list of security updates
|
||||
CacheDisable http://security.update.server/update-list/
|
||||
</IfModule></pre>
|
||||
</div>
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="thunderingherd" id="thunderingherd">Avoiding the Thundering Herd</a></h2>
|
||||
<p>When a cached entry becomes stale, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> will submit
|
||||
a conditional request to the backend, which is expected to confirm whether the
|
||||
cached entry is still fresh, and send an updated entity if not.</p>
|
||||
<p>A small but finite amount of time exists between the time the cached entity
|
||||
becomes stale, and the time the stale entity is fully refreshed. On a busy
|
||||
server, a significant number of requests might arrive during this time, and
|
||||
cause a <strong>thundering herd</strong> of requests to strike the backend
|
||||
suddenly and unpredictably.</p>
|
||||
<p>To keep the thundering herd at bay, the <code class="directive">CacheLock</code>
|
||||
directive can be used to define a directory in which locks are created for
|
||||
URLs <strong>in flight</strong>. The lock is used as a <strong>hint</strong>
|
||||
by other requests to either suppress an attempt to cache (someone else has
|
||||
gone to fetch the entity), or to indicate that a stale entry is being refreshed
|
||||
(stale content will be returned in the mean time).
|
||||
</p>
|
||||
<h3>Initial caching of an entry</h3>
|
||||
|
||||
<p>When an entity is cached for the first time, a lock will be created for the
|
||||
entity until the response has been fully cached. During the lifetime of the
|
||||
lock, the cache will suppress the second and subsequent attempt to cache the
|
||||
same entity. While this doesn't hold back the thundering herd, it does stop
|
||||
the cache attempting to cache the same entity multiple times simultaneously.
|
||||
</p>
|
||||
|
||||
<h3>Refreshment of a stale entry</h3>
|
||||
|
||||
<p>When an entity reaches its freshness lifetime and becomes stale, a lock
|
||||
will be created for the entity until the response has either been confirmed as
|
||||
still fresh, or replaced by the backend. During the lifetime of the lock, the
|
||||
second and subsequent incoming request will cause stale data to be returned,
|
||||
and the thundering herd is kept at bay.</p>
|
||||
|
||||
<h3>Locks and Cache-Control: no-cache</h3>
|
||||
|
||||
<p>Locks are used as a <strong>hint only</strong> to enable the cache to be
|
||||
more gentle on backend servers, however the lock can be overridden if necessary.
|
||||
If the client sends a request with a Cache-Control header forcing a reload, any
|
||||
lock that may be present will be ignored, and the client's request will be
|
||||
honored immediately and the cached entry refreshed.</p>
|
||||
<p>As a further safety mechanism, locks have a configurable maximum age.
|
||||
Once this age has been reached, the lock is removed, and a new request is
|
||||
given the opportunity to create a new lock. This maximum age can be set using
|
||||
the <code class="directive">CacheLockMaxAge</code> directive, and defaults to 5
|
||||
seconds.
|
||||
</p>
|
||||
|
||||
<h3>Example configuration</h3>
|
||||
|
||||
<div class="example"><h3>Enabling the cache lock</h3><pre class="prettyprint lang-config">#
|
||||
# Enable the cache lock
|
||||
#
|
||||
<IfModule mod_cache.c>
|
||||
CacheLock on
|
||||
CacheLockPath /tmp/mod_cache-lock
|
||||
CacheLockMaxAge 5
|
||||
</IfModule></pre>
|
||||
</div>
|
||||
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="finecontrol" id="finecontrol">Fine Control with the CACHE Filter</a></h2>
|
||||
<p>Under the default mode of cache operation, the cache runs as a quick handler,
|
||||
short circuiting the majority of server processing and offering the highest
|
||||
cache performance available.</p>
|
||||
|
||||
<p>In this mode, the cache <strong>bolts onto</strong> the front of the server,
|
||||
acting as if a free standing RFC 2616 caching proxy had been placed in front of
|
||||
the server.</p>
|
||||
|
||||
<p>While this mode offers the best performance, the administrator may find that
|
||||
under certain circumstances they may want to perform further processing on the
|
||||
request after the request is cached, such as to inject personalisation into the
|
||||
cached page, or to apply authorization restrictions to the content. Under these
|
||||
circumstances, an administrator is often forced to place independent reverse
|
||||
proxy servers either behind or in front of the caching server to achieve this.</p>
|
||||
|
||||
<p>To solve this problem the <code class="directive"><a href="#cachequickhandler">CacheQuickHandler
|
||||
</a></code> directive can be set to <strong>off</strong>, and the server will
|
||||
process all phases normally handled by a non-cached request, including the
|
||||
<strong>authentication and authorization</strong> phases.</p>
|
||||
|
||||
<p>In addition, the administrator may optionally specify the <strong>precise point
|
||||
within the filter chain</strong> where caching is to take place by adding the
|
||||
<strong>CACHE</strong> filter to the output filter chain.</p>
|
||||
|
||||
<p>For example, to cache content before applying compression to the response,
|
||||
place the <strong>CACHE</strong> filter before the <strong>DEFLATE</strong>
|
||||
filter as in the example below:</p>
|
||||
|
||||
<pre class="prettyprint lang-config"># Cache content before optional compression
|
||||
CacheQuickHandler off
|
||||
AddOutputFilterByType CACHE;DEFLATE text/plain</pre>
|
||||
|
||||
|
||||
<p>Another option is to have content cached before personalisation is applied
|
||||
by <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> (or another content processing filter). In this
|
||||
example templates containing tags understood by
|
||||
<code class="module"><a href="../mod/mod_include.html">mod_include</a></code> are cached before being parsed:</p>
|
||||
|
||||
<pre class="prettyprint lang-config"># Cache content before mod_include and mod_deflate
|
||||
CacheQuickHandler off
|
||||
AddOutputFilterByType CACHE;INCLUDES;DEFLATE text/html</pre>
|
||||
|
||||
|
||||
<p>You may place the <strong>CACHE</strong> filter anywhere you wish within the
|
||||
filter chain. In this example, content is cached after being parsed by
|
||||
<code class="module"><a href="../mod/mod_include.html">mod_include</a></code>, but before being processed by
|
||||
<code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code>:</p>
|
||||
|
||||
<pre class="prettyprint lang-config"># Cache content between mod_include and mod_deflate
|
||||
CacheQuickHandler off
|
||||
AddOutputFilterByType INCLUDES;CACHE;DEFLATE text/html</pre>
|
||||
|
||||
|
||||
<div class="warning"><h3>Warning:</h3>If the location of the
|
||||
<strong>CACHE</strong> filter in the filter chain is changed for any reason,
|
||||
you may need to <strong>flush your cache</strong> to ensure that your data
|
||||
served remains consistent. <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> is not in a position
|
||||
to enforce this for you.</div>
|
||||
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="status" id="status">Cache Status and Logging</a></h2>
|
||||
<p>Once <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> has made a decision as to whether or not
|
||||
an entity is to be served from cache, the detailed reason for the decision
|
||||
is written to the subprocess environment within the request under the
|
||||
<strong>cache-status</strong> key. This reason can be logged by the
|
||||
<code class="directive"><a href="../mod/mod_log_config.html#logformat">LogFormat</a></code> directive as
|
||||
follows:</p>
|
||||
|
||||
<pre class="prettyprint lang-config">LogFormat "%{cache-status}e ..."</pre>
|
||||
|
||||
|
||||
<p>Based on the caching decision made, the reason is also written to the
|
||||
subprocess environment under one the following four keys, as appropriate:</p>
|
||||
|
||||
<dl>
|
||||
<dt>cache-hit</dt><dd>The response was served from cache.</dd>
|
||||
<dt>cache-revalidate</dt><dd>The response was stale and was successfully
|
||||
revalidated, then served from cache.</dd>
|
||||
<dt>cache-miss</dt><dd>The response was served from the upstream server.</dd>
|
||||
<dt>cache-invalidate</dt><dd>The cached entity was invalidated by a request
|
||||
method other than GET or HEAD.</dd>
|
||||
</dl>
|
||||
|
||||
<p>This makes it possible to support conditional logging of cached requests
|
||||
as per the following example:</p>
|
||||
|
||||
<pre class="prettyprint lang-config">CustomLog cached-requests.log common env=cache-hit
|
||||
CustomLog uncached-requests.log common env=cache-miss
|
||||
CustomLog revalidated-requests.log common env=cache-revalidate
|
||||
CustomLog invalidated-requests.log common env=cache-invalidate</pre>
|
||||
|
||||
|
||||
<p>For module authors, a hook called <var>cache_status</var> is available,
|
||||
allowing modules to respond to the caching outcomes above in customised
|
||||
ways.</p>
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="CacheDefaultExpire" id="CacheDefaultExpire">CacheDefaultExpire</a> <a name="cachedefaultexpire" id="cachedefaultexpire">Directive</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The default duration to cache a document when no expiry date is specified.</td></tr>
|
||||
@@ -1040,6 +855,191 @@ CacheStaleOnError on</pre>
|
||||
<li><code class="directive"><a href="#cachestorenostore">CacheStoreNoStore</a></code></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="related" id="related">Related Modules and Directives</a></h2>
|
||||
<table class="related"><tr><th>Related Modules</th><th>Related Directives</th></tr><tr><td><ul><li><code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code></li><li><code class="module"><a href="../mod/mod_cache_socache.html">mod_cache_socache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheroot">CacheRoot</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlevels">CacheDirLevels</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlength">CacheDirLength</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheminfilesize">CacheMinFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachemaxfilesize">CacheMaxFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocache">CacheSocache</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemaxtime">CacheSocacheMaxTime</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemintime">CacheSocacheMinTime</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemaxsize">CacheSocacheMaxSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachereadsize">CacheSocacheReadSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachereadtime">CacheSocacheReadTime</a></code></li></ul></td></tr></table>
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="sampleconf" id="sampleconf">Sample Configuration</a></h2>
|
||||
<div class="example"><h3>Sample httpd.conf</h3><pre class="prettyprint lang-config">#
|
||||
# Sample Cache Configuration
|
||||
#
|
||||
LoadModule cache_module modules/mod_cache.so
|
||||
<IfModule mod_cache.c>
|
||||
LoadModule cache_disk_module modules/mod_cache_disk.so
|
||||
<IfModule mod_cache_disk.c>
|
||||
CacheRoot c:/cacheroot
|
||||
CacheEnable disk /
|
||||
CacheDirLevels 5
|
||||
CacheDirLength 3
|
||||
</IfModule>
|
||||
|
||||
# When acting as a proxy, don't cache the list of security updates
|
||||
CacheDisable http://security.update.server/update-list/
|
||||
</IfModule></pre>
|
||||
</div>
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="thunderingherd" id="thunderingherd">Avoiding the Thundering Herd</a></h2>
|
||||
<p>When a cached entry becomes stale, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> will submit
|
||||
a conditional request to the backend, which is expected to confirm whether the
|
||||
cached entry is still fresh, and send an updated entity if not.</p>
|
||||
<p>A small but finite amount of time exists between the time the cached entity
|
||||
becomes stale, and the time the stale entity is fully refreshed. On a busy
|
||||
server, a significant number of requests might arrive during this time, and
|
||||
cause a <strong>thundering herd</strong> of requests to strike the backend
|
||||
suddenly and unpredictably.</p>
|
||||
<p>To keep the thundering herd at bay, the <code class="directive">CacheLock</code>
|
||||
directive can be used to define a directory in which locks are created for
|
||||
URLs <strong>in flight</strong>. The lock is used as a <strong>hint</strong>
|
||||
by other requests to either suppress an attempt to cache (someone else has
|
||||
gone to fetch the entity), or to indicate that a stale entry is being refreshed
|
||||
(stale content will be returned in the mean time).
|
||||
</p>
|
||||
<h3>Initial caching of an entry</h3>
|
||||
|
||||
<p>When an entity is cached for the first time, a lock will be created for the
|
||||
entity until the response has been fully cached. During the lifetime of the
|
||||
lock, the cache will suppress the second and subsequent attempt to cache the
|
||||
same entity. While this doesn't hold back the thundering herd, it does stop
|
||||
the cache attempting to cache the same entity multiple times simultaneously.
|
||||
</p>
|
||||
|
||||
<h3>Refreshment of a stale entry</h3>
|
||||
|
||||
<p>When an entity reaches its freshness lifetime and becomes stale, a lock
|
||||
will be created for the entity until the response has either been confirmed as
|
||||
still fresh, or replaced by the backend. During the lifetime of the lock, the
|
||||
second and subsequent incoming request will cause stale data to be returned,
|
||||
and the thundering herd is kept at bay.</p>
|
||||
|
||||
<h3>Locks and Cache-Control: no-cache</h3>
|
||||
|
||||
<p>Locks are used as a <strong>hint only</strong> to enable the cache to be
|
||||
more gentle on backend servers, however the lock can be overridden if necessary.
|
||||
If the client sends a request with a Cache-Control header forcing a reload, any
|
||||
lock that may be present will be ignored, and the client's request will be
|
||||
honored immediately and the cached entry refreshed.</p>
|
||||
<p>As a further safety mechanism, locks have a configurable maximum age.
|
||||
Once this age has been reached, the lock is removed, and a new request is
|
||||
given the opportunity to create a new lock. This maximum age can be set using
|
||||
the <code class="directive">CacheLockMaxAge</code> directive, and defaults to 5
|
||||
seconds.
|
||||
</p>
|
||||
|
||||
<h3>Example configuration</h3>
|
||||
|
||||
<div class="example"><h3>Enabling the cache lock</h3><pre class="prettyprint lang-config">#
|
||||
# Enable the cache lock
|
||||
#
|
||||
<IfModule mod_cache.c>
|
||||
CacheLock on
|
||||
CacheLockPath /tmp/mod_cache-lock
|
||||
CacheLockMaxAge 5
|
||||
</IfModule></pre>
|
||||
</div>
|
||||
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="finecontrol" id="finecontrol">Fine Control with the CACHE Filter</a></h2>
|
||||
<p>Under the default mode of cache operation, the cache runs as a quick handler,
|
||||
short circuiting the majority of server processing and offering the highest
|
||||
cache performance available.</p>
|
||||
|
||||
<p>In this mode, the cache <strong>bolts onto</strong> the front of the server,
|
||||
acting as if a free standing RFC 2616 caching proxy had been placed in front of
|
||||
the server.</p>
|
||||
|
||||
<p>While this mode offers the best performance, the administrator may find that
|
||||
under certain circumstances they may want to perform further processing on the
|
||||
request after the request is cached, such as to inject personalisation into the
|
||||
cached page, or to apply authorization restrictions to the content. Under these
|
||||
circumstances, an administrator is often forced to place independent reverse
|
||||
proxy servers either behind or in front of the caching server to achieve this.</p>
|
||||
|
||||
<p>To solve this problem the <code class="directive"><a href="#cachequickhandler">CacheQuickHandler
|
||||
</a></code> directive can be set to <strong>off</strong>, and the server will
|
||||
process all phases normally handled by a non-cached request, including the
|
||||
<strong>authentication and authorization</strong> phases.</p>
|
||||
|
||||
<p>In addition, the administrator may optionally specify the <strong>precise point
|
||||
within the filter chain</strong> where caching is to take place by adding the
|
||||
<strong>CACHE</strong> filter to the output filter chain.</p>
|
||||
|
||||
<p>For example, to cache content before applying compression to the response,
|
||||
place the <strong>CACHE</strong> filter before the <strong>DEFLATE</strong>
|
||||
filter as in the example below:</p>
|
||||
|
||||
<pre class="prettyprint lang-config"># Cache content before optional compression
|
||||
CacheQuickHandler off
|
||||
AddOutputFilterByType CACHE;DEFLATE text/plain</pre>
|
||||
|
||||
|
||||
<p>Another option is to have content cached before personalisation is applied
|
||||
by <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> (or another content processing filter). In this
|
||||
example templates containing tags understood by
|
||||
<code class="module"><a href="../mod/mod_include.html">mod_include</a></code> are cached before being parsed:</p>
|
||||
|
||||
<pre class="prettyprint lang-config"># Cache content before mod_include and mod_deflate
|
||||
CacheQuickHandler off
|
||||
AddOutputFilterByType CACHE;INCLUDES;DEFLATE text/html</pre>
|
||||
|
||||
|
||||
<p>You may place the <strong>CACHE</strong> filter anywhere you wish within the
|
||||
filter chain. In this example, content is cached after being parsed by
|
||||
<code class="module"><a href="../mod/mod_include.html">mod_include</a></code>, but before being processed by
|
||||
<code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code>:</p>
|
||||
|
||||
<pre class="prettyprint lang-config"># Cache content between mod_include and mod_deflate
|
||||
CacheQuickHandler off
|
||||
AddOutputFilterByType INCLUDES;CACHE;DEFLATE text/html</pre>
|
||||
|
||||
|
||||
<div class="warning"><h3>Warning:</h3>If the location of the
|
||||
<strong>CACHE</strong> filter in the filter chain is changed for any reason,
|
||||
you may need to <strong>flush your cache</strong> to ensure that your data
|
||||
served remains consistent. <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> is not in a position
|
||||
to enforce this for you.</div>
|
||||
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="status" id="status">Cache Status and Logging</a></h2>
|
||||
<p>Once <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> has made a decision as to whether or not
|
||||
an entity is to be served from cache, the detailed reason for the decision
|
||||
is written to the subprocess environment within the request under the
|
||||
<strong>cache-status</strong> key. This reason can be logged by the
|
||||
<code class="directive"><a href="../mod/mod_log_config.html#logformat">LogFormat</a></code> directive as
|
||||
follows:</p>
|
||||
|
||||
<pre class="prettyprint lang-config">LogFormat "%{cache-status}e ..."</pre>
|
||||
|
||||
|
||||
<p>Based on the caching decision made, the reason is also written to the
|
||||
subprocess environment under one the following four keys, as appropriate:</p>
|
||||
|
||||
<dl>
|
||||
<dt>cache-hit</dt><dd>The response was served from cache.</dd>
|
||||
<dt>cache-revalidate</dt><dd>The response was stale and was successfully
|
||||
revalidated, then served from cache.</dd>
|
||||
<dt>cache-miss</dt><dd>The response was served from the upstream server.</dd>
|
||||
<dt>cache-invalidate</dt><dd>The cached entity was invalidated by a request
|
||||
method other than GET or HEAD.</dd>
|
||||
</dl>
|
||||
|
||||
<p>This makes it possible to support conditional logging of cached requests
|
||||
as per the following example:</p>
|
||||
|
||||
<pre class="prettyprint lang-config">CustomLog cached-requests.log common env=cache-hit
|
||||
CustomLog uncached-requests.log common env=cache-miss
|
||||
CustomLog revalidated-requests.log common env=cache-revalidate
|
||||
CustomLog invalidated-requests.log common env=cache-invalidate</pre>
|
||||
|
||||
|
||||
<p>For module authors, a hook called <var>cache_status</var> is available,
|
||||
allowing modules to respond to the caching outcomes above in customised
|
||||
ways.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>Available Languages: </span><a href="../en/mod/mod_cache.html" title="English"> en </a> |
|
||||
|
||||
@@ -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
|
||||
<IfModule mod_cache.c>
|
||||
LoadModule cache_disk_module modules/mod_cache_disk.so
|
||||
<IfModule mod_cache_disk.c>
|
||||
CacheRoot c:/cacheroot
|
||||
CacheEnable disk /
|
||||
CacheDirLevels 5
|
||||
CacheDirLength 3
|
||||
</IfModule>
|
||||
|
||||
# Lorsqu'on sert de mandataire, on ne met pas en cache la liste
|
||||
# des mises <20> jour de s<>curit<69>
|
||||
CacheDisable http://security.update.server/update-list/
|
||||
</IfModule></pre>
|
||||
</div>
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="thunderingherd" id="thunderingherd">Eviter une 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
|
||||
#
|
||||
<IfModule mod_cache.c>
|
||||
CacheLock on
|
||||
CacheLockPath /tmp/mod_cache-lock
|
||||
CacheLockMaxAge 5
|
||||
</IfModule></pre>
|
||||
</div>
|
||||
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="finecontrol" id="finecontrol">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
|
||||
<IfModule mod_cache.c>
|
||||
LoadModule cache_disk_module modules/mod_cache_disk.so
|
||||
<IfModule mod_cache_disk.c>
|
||||
CacheRoot c:/cacheroot
|
||||
CacheEnable disk /
|
||||
CacheDirLevels 5
|
||||
CacheDirLength 3
|
||||
</IfModule>
|
||||
|
||||
# Lorsqu'on sert de mandataire, on ne met pas en cache la liste
|
||||
# des mises <20> jour de s<>curit<69>
|
||||
CacheDisable http://security.update.server/update-list/
|
||||
</IfModule></pre>
|
||||
</div>
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="thunderingherd" id="thunderingherd">Eviter une 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
|
||||
#
|
||||
<IfModule mod_cache.c>
|
||||
CacheLock on
|
||||
CacheLockPath /tmp/mod_cache-lock
|
||||
CacheLockMaxAge 5
|
||||
</IfModule></pre>
|
||||
</div>
|
||||
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="finecontrol" id="finecontrol">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">
|
||||
|
||||
@@ -105,50 +105,6 @@
|
||||
<li><a href="../caching.html">キャッシュ機能</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="related" id="related">関連モジュールとディレクティブ</a></h2>
|
||||
<table class="related"><tr><th>関連モジュール</th><th>関連ディレクティブ</th></tr><tr><td><ul><li><code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code></li><li><code class="module"><a href="../mod/mod_mem_cache.html">mod_mem_cache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheroot">CacheRoot</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlevels">CacheDirLevels</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlength">CacheDirLength</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheminfilesize">CacheMinFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_dist.html#cachemaxfilesize">CacheMaxFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcachesize">MCacheSize</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcachemaxobjectcount">MCacheMaxObjectCount</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcacheminobjectsize">MCacheMinObjectSize</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcachemaxobjectsize">MCacheMaxObjectSize</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcacheremovalalgorithm">MCacheRemovalAlgorithm</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcachemaxstreamingbuffer">MCacheMaxStreamingBuffer</a></code></li></ul></td></tr></table>
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="sampleconf" id="sampleconf">サンプル設定</a></h2>
|
||||
<div class="example"><h3>Sample httpd.conf</h3><p><code>
|
||||
#<br />
|
||||
# Sample Cache Configuration<br />
|
||||
#<br />
|
||||
LoadModule cache_module modules/mod_cache.so<br />
|
||||
<br />
|
||||
<IfModule mod_cache.c><br />
|
||||
<span class="indent">
|
||||
#LoadModule cache_disk_module modules/mod_cache_disk.so<br />
|
||||
# If you want to use mod_cache_disk instead of mod_mem_cache,<br />
|
||||
# uncomment the line above and comment out the LoadModule line below.<br />
|
||||
<IfModule mod_cache_disk.c><br />
|
||||
<span class="indent">
|
||||
CacheRoot c:/cacheroot<br />
|
||||
CacheEnable disk /<br />
|
||||
CacheDirLevels 5<br />
|
||||
CacheDirLength 3<br />
|
||||
</span>
|
||||
</IfModule> <br />
|
||||
<br />
|
||||
LoadModule mem_cache_module modules/mod_mem_cache.so<br />
|
||||
<IfModule mod_mem_cache.c><br />
|
||||
<span class="indent">
|
||||
CacheEnable mem /<br />
|
||||
MCacheSize 4096<br />
|
||||
MCacheMaxObjectCount 100<br />
|
||||
MCacheMinObjectSize 1<br />
|
||||
MCacheMaxObjectSize 2048<br />
|
||||
</span>
|
||||
</IfModule><br />
|
||||
<br />
|
||||
# When acting as a proxy, don't cache the list of security updates<br />
|
||||
CacheDisable http://security.update.server/update-list/<br />
|
||||
</span>
|
||||
</IfModule>
|
||||
</code></p></div>
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="CacheDefaultExpire" id="CacheDefaultExpire">CacheDefaultExpire</a> <a name="cachedefaultexpire" id="cachedefaultexpire">ディレクティブ</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>期日が指定されていないときにドキュメントをキャッシュするデフォルトの期間</td></tr>
|
||||
@@ -645,6 +601,50 @@
|
||||
<li><code class="directive"><a href="#cachestorenostore">CacheStoreNoStore</a></code></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="related" id="related">関連モジュールとディレクティブ</a></h2>
|
||||
<table class="related"><tr><th>関連モジュール</th><th>関連ディレクティブ</th></tr><tr><td><ul><li><code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code></li><li><code class="module"><a href="../mod/mod_mem_cache.html">mod_mem_cache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheroot">CacheRoot</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlevels">CacheDirLevels</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlength">CacheDirLength</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheminfilesize">CacheMinFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_dist.html#cachemaxfilesize">CacheMaxFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcachesize">MCacheSize</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcachemaxobjectcount">MCacheMaxObjectCount</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcacheminobjectsize">MCacheMinObjectSize</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcachemaxobjectsize">MCacheMaxObjectSize</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcacheremovalalgorithm">MCacheRemovalAlgorithm</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcachemaxstreamingbuffer">MCacheMaxStreamingBuffer</a></code></li></ul></td></tr></table>
|
||||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="sampleconf" id="sampleconf">サンプル設定</a></h2>
|
||||
<div class="example"><h3>Sample httpd.conf</h3><p><code>
|
||||
#<br />
|
||||
# Sample Cache Configuration<br />
|
||||
#<br />
|
||||
LoadModule cache_module modules/mod_cache.so<br />
|
||||
<br />
|
||||
<IfModule mod_cache.c><br />
|
||||
<span class="indent">
|
||||
#LoadModule cache_disk_module modules/mod_cache_disk.so<br />
|
||||
# If you want to use mod_cache_disk instead of mod_mem_cache,<br />
|
||||
# uncomment the line above and comment out the LoadModule line below.<br />
|
||||
<IfModule mod_cache_disk.c><br />
|
||||
<span class="indent">
|
||||
CacheRoot c:/cacheroot<br />
|
||||
CacheEnable disk /<br />
|
||||
CacheDirLevels 5<br />
|
||||
CacheDirLength 3<br />
|
||||
</span>
|
||||
</IfModule> <br />
|
||||
<br />
|
||||
LoadModule mem_cache_module modules/mod_mem_cache.so<br />
|
||||
<IfModule mod_mem_cache.c><br />
|
||||
<span class="indent">
|
||||
CacheEnable mem /<br />
|
||||
MCacheSize 4096<br />
|
||||
MCacheMaxObjectCount 100<br />
|
||||
MCacheMinObjectSize 1<br />
|
||||
MCacheMaxObjectSize 2048<br />
|
||||
</span>
|
||||
</IfModule><br />
|
||||
<br />
|
||||
# When acting as a proxy, don't cache the list of security updates<br />
|
||||
CacheDisable http://security.update.server/update-list/<br />
|
||||
</span>
|
||||
</IfModule>
|
||||
</code></p></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>翻訳済み言語: </span><a href="../en/mod/mod_cache.html" hreflang="en" rel="alternate" title="English"> en </a> |
|
||||
|
||||
@@ -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 />
|
||||
<IfModule mod_cache.c><br />
|
||||
<span class="indent">
|
||||
#LoadModule cache_disk_module modules/mod_cache_disk.so<br />
|
||||
<IfModule mod_cache_disk.c><br />
|
||||
<span class="indent">
|
||||
CacheRoot c:/cacheroot<br />
|
||||
CacheSize 256<br />
|
||||
CacheEnable disk /<br />
|
||||
CacheDirLevels 5<br />
|
||||
CacheDirLength 3<br />
|
||||
</span>
|
||||
</IfModule> <br />
|
||||
<br />
|
||||
LoadModule mem_cache_module modules/mod_mem_cache.so<br />
|
||||
<IfModule mod_mem_cache.c><br />
|
||||
<span class="indent">
|
||||
CacheEnable mem /<br />
|
||||
MCacheSize 4096<br />
|
||||
MCacheMaxObjectCount 100<br />
|
||||
MCacheMinObjectSize 1<br />
|
||||
MCacheMaxObjectSize 2048<br />
|
||||
</span>
|
||||
</IfModule><br />
|
||||
</span>
|
||||
</IfModule>
|
||||
</code></p></div>
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="CacheDefaultExpire" id="CacheDefaultExpire">CacheDefaultExpire</a> <a name="cachedefaultexpire" id="cachedefaultexpire"><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 />
|
||||
<IfModule mod_cache.c><br />
|
||||
<span class="indent">
|
||||
#LoadModule cache_disk_module modules/mod_cache_disk.so<br />
|
||||
<IfModule mod_cache_disk.c><br />
|
||||
<span class="indent">
|
||||
CacheRoot c:/cacheroot<br />
|
||||
CacheSize 256<br />
|
||||
CacheEnable disk /<br />
|
||||
CacheDirLevels 5<br />
|
||||
CacheDirLength 3<br />
|
||||
</span>
|
||||
</IfModule> <br />
|
||||
<br />
|
||||
LoadModule mem_cache_module modules/mod_mem_cache.so<br />
|
||||
<IfModule mod_mem_cache.c><br />
|
||||
<span class="indent">
|
||||
CacheEnable mem /<br />
|
||||
MCacheSize 4096<br />
|
||||
MCacheMaxObjectCount 100<br />
|
||||
MCacheMinObjectSize 1<br />
|
||||
MCacheMaxObjectSize 2048<br />
|
||||
</span>
|
||||
</IfModule><br />
|
||||
</span>
|
||||
</IfModule>
|
||||
</code></p></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: </span><a href="../en/mod/mod_cache.html" hreflang="en" rel="alternate" title="English"> en </a> |
|
||||
|
||||
@@ -88,7 +88,6 @@
|
||||
<li><code class="module"><a href="../mod/mod_cache_socache.html">mod_cache_socache</a></code></li>
|
||||
<li><a href="../caching.html">Caching Guide</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="CacheDirLength" id="CacheDirLength">CacheDirLength</a> <a name="cachedirlength" id="cachedirlength">Directive</a></h2>
|
||||
<table class="directive">
|
||||
@@ -257,6 +256,7 @@ stored</td></tr>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>Available Languages: </span><a href="../en/mod/mod_cache_disk.html" title="English"> en </a> |
|
||||
|
||||
@@ -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"> en </a> |
|
||||
|
||||
@@ -65,7 +65,6 @@
|
||||
<li><img alt="" src="../images/down.gif" /> <a href="#cacheroot">CacheRoot</a></li>
|
||||
</ul>
|
||||
<ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="CacheDirLength" id="CacheDirLength">CacheDirLength</a> <a name="cachedirlength" id="cachedirlength">ディレクティブ</a></h2>
|
||||
<table class="directive">
|
||||
@@ -197,6 +196,7 @@
|
||||
</code></p></div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>翻訳済み言語: </span><a href="../en/mod/mod_cache_disk.html" hreflang="en" rel="alternate" title="English"> en </a> |
|
||||
|
||||
@@ -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"> en </a> |
|
||||
|
||||
@@ -83,7 +83,6 @@ CacheSocacheMaxSize 102400
|
||||
<li><code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code></li>
|
||||
<li><a href="../caching.html">Caching Guide</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="CacheSocache" id="CacheSocache">CacheSocache</a> <a name="cachesocache" id="cachesocache">Directive</a></h2>
|
||||
<table class="directive">
|
||||
@@ -233,6 +232,7 @@ cache</td></tr>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>Available Languages: </span><a href="../en/mod/mod_cache_socache.html" title="English"> en </a> |
|
||||
|
||||
@@ -84,7 +84,6 @@ CacheSocacheMaxSize 102400
|
||||
<li><code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code></li>
|
||||
<li><a href="../caching.html">Guide de la mise en cache</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="cachesocache" id="cachesocache">Directive</a> <a name="CacheSocache" id="CacheSocache">CacheSocache</a></h2>
|
||||
<table class="directive">
|
||||
@@ -246,6 +245,7 @@ Apache</td></tr>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_cache_socache.html" hreflang="en" rel="alternate" title="English"> en </a> |
|
||||
|
||||
@@ -56,7 +56,6 @@
|
||||
<li><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code></li>
|
||||
<li><code class="module"><a href="../mod/mod_asis.html">mod_asis</a></code></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="MetaDir" id="MetaDir">MetaDir</a> <a name="metadir" id="metadir">Directive</a></h2>
|
||||
<table class="directive">
|
||||
@@ -123,6 +122,7 @@ meta information</td></tr>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>Available Languages: </span><a href="../en/mod/mod_cern_meta.html" title="English"> en </a> |
|
||||
|
||||
@@ -58,7 +58,6 @@ CERN</td></tr>
|
||||
<li><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code></li>
|
||||
<li><code class="module"><a href="../mod/mod_asis.html">mod_asis</a></code></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="metadir" id="metadir">Directive</a> <a name="MetaDir" id="MetaDir">MetaDir</a></h2>
|
||||
<table class="directive">
|
||||
@@ -128,6 +127,7 @@ style du CERN</td></tr>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_cern_meta.html" hreflang="en" rel="alternate" title="English"> en </a> |
|
||||
|
||||
@@ -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"> en </a> |
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -74,7 +74,6 @@
|
||||
<li><a href="../suexec.html">Running CGI programs under different
|
||||
user IDs</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="CGIDScriptTimeout" id="CGIDScriptTimeout">CGIDScriptTimeout</a> <a name="cgidscripttimeout" id="cgidscripttimeout">Directive</a></h2>
|
||||
<table class="directive">
|
||||
@@ -126,6 +125,7 @@ the cgi daemon</td></tr>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>Available Languages: </span><a href="../en/mod/mod_cgid.html" title="English"> en </a> |
|
||||
|
||||
@@ -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"> en </a> |
|
||||
|
||||
@@ -73,7 +73,6 @@
|
||||
<li><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code></li>
|
||||
<li><a href="../suexec.html">CGI プログラムを違うユーザ ID で実行する</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
|
||||
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="CGIDScriptTimeout" id="CGIDScriptTimeout">CGIDScriptTimeout</a> <a name="cgidscripttimeout" id="cgidscripttimeout">ディレクティブ</a></h2>
|
||||
<table class="directive">
|
||||
@@ -113,6 +112,7 @@ unset</code></td></tr>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
<p><span>翻訳済み言語: </span><a href="../en/mod/mod_cgid.html" hreflang="en" rel="alternate" title="English"> en </a> |
|
||||
|
||||
@@ -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"> en </a> |
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -60,6 +60,80 @@
|
||||
<li><a href="http://www.webdav.org">WebDAV Resources</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="Dav" id="Dav">Dav</a> <a name="dav" id="dav">Directive</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enable WebDAV HTTP methods</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Dav On|Off|<var>provider-name</var></code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>Dav Off</code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr>
|
||||
</table>
|
||||
<p>Use the <code class="directive">Dav</code> directive to enable the
|
||||
WebDAV HTTP methods for the given container:</p>
|
||||
|
||||
<pre class="prettyprint lang-config"><Location "/foo">
|
||||
Dav On
|
||||
</Location></pre>
|
||||
|
||||
|
||||
<p>The value <code>On</code> is actually an alias for the default
|
||||
provider <code>filesystem</code> which is served by the <code class="module"><a href="../mod/mod_dav_fs.html">mod_dav_fs</a></code> module. Note, that once you have DAV enabled
|
||||
for some location, it <em>cannot</em> be disabled for sublocations.
|
||||
For a complete configuration example have a look at the <a href="#example">section above</a>.</p>
|
||||
|
||||
<div class="warning">
|
||||
Do not enable WebDAV until you have secured your server. Otherwise
|
||||
everyone will be able to distribute files on your system.
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="DavDepthInfinity" id="DavDepthInfinity">DavDepthInfinity</a> <a name="davdepthinfinity" id="davdepthinfinity">Directive</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Allow PROPFIND, Depth: Infinity requests</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DavDepthInfinity on|off</code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DavDepthInfinity off</code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr>
|
||||
</table>
|
||||
<p>Use the <code class="directive">DavDepthInfinity</code> directive to
|
||||
allow the processing of <code>PROPFIND</code> requests containing the
|
||||
header 'Depth: Infinity'. Because this type of request could constitute
|
||||
a denial-of-service attack, by default it is not allowed.</p>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="DavMinTimeout" id="DavMinTimeout">DavMinTimeout</a> <a name="davmintimeout" id="davmintimeout">Directive</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Minimum amount of time the server holds a lock on
|
||||
a DAV resource</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DavMinTimeout <var>seconds</var></code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DavMinTimeout 0</code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr>
|
||||
</table>
|
||||
<p>When a client requests a DAV resource lock, it can also
|
||||
specify a time when the lock will be automatically removed by
|
||||
the server. This value is only a request, and the server can
|
||||
ignore it or inform the client of an arbitrary value.</p>
|
||||
|
||||
<p>Use the <code class="directive">DavMinTimeout</code> directive to specify, in
|
||||
seconds, the minimum lock timeout to return to a client.
|
||||
Microsoft Web Folders defaults to a timeout of 120 seconds; the
|
||||
<code class="directive">DavMinTimeout</code> can override this to a higher value
|
||||
(like 600 seconds) to reduce the chance of the client losing
|
||||
the lock due to network latency.</p>
|
||||
|
||||
<div class="example"><h3>Example</h3><pre class="prettyprint lang-config"><Location "/MSWord">
|
||||
DavMinTimeout 600
|
||||
</Location></pre>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="example" id="example">Enabling WebDAV</a></h2>
|
||||
<p>To enable <code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code>, add the following to a
|
||||
@@ -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"><Location "/foo">
|
||||
Dav On
|
||||
</Location></pre>
|
||||
|
||||
|
||||
<p>The value <code>On</code> is actually an alias for the default
|
||||
provider <code>filesystem</code> which is served by the <code class="module"><a href="../mod/mod_dav_fs.html">mod_dav_fs</a></code> module. Note, that once you have DAV enabled
|
||||
for some location, it <em>cannot</em> be disabled for sublocations.
|
||||
For a complete configuration example have a look at the <a href="#example">section above</a>.</p>
|
||||
|
||||
<div class="warning">
|
||||
Do not enable WebDAV until you have secured your server. Otherwise
|
||||
everyone will be able to distribute files on your system.
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="DavDepthInfinity" id="DavDepthInfinity">DavDepthInfinity</a> <a name="davdepthinfinity" id="davdepthinfinity">Directive</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Allow PROPFIND, Depth: Infinity requests</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DavDepthInfinity on|off</code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DavDepthInfinity off</code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr>
|
||||
</table>
|
||||
<p>Use the <code class="directive">DavDepthInfinity</code> directive to
|
||||
allow the processing of <code>PROPFIND</code> requests containing the
|
||||
header 'Depth: Infinity'. Because this type of request could constitute
|
||||
a denial-of-service attack, by default it is not allowed.</p>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="DavMinTimeout" id="DavMinTimeout">DavMinTimeout</a> <a name="davmintimeout" id="davmintimeout">Directive</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Minimum amount of time the server holds a lock on
|
||||
a DAV resource</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DavMinTimeout <var>seconds</var></code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DavMinTimeout 0</code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr>
|
||||
</table>
|
||||
<p>When a client requests a DAV resource lock, it can also
|
||||
specify a time when the lock will be automatically removed by
|
||||
the server. This value is only a request, and the server can
|
||||
ignore it or inform the client of an arbitrary value.</p>
|
||||
|
||||
<p>Use the <code class="directive">DavMinTimeout</code> directive to specify, in
|
||||
seconds, the minimum lock timeout to return to a client.
|
||||
Microsoft Web Folders defaults to a timeout of 120 seconds; the
|
||||
<code class="directive">DavMinTimeout</code> can override this to a higher value
|
||||
(like 600 seconds) to reduce the chance of the client losing
|
||||
the lock due to network latency.</p>
|
||||
|
||||
<div class="example"><h3>Example</h3><pre class="prettyprint lang-config"><Location "/MSWord">
|
||||
DavMinTimeout 600
|
||||
</Location></pre>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
|
||||
@@ -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"><Location /foo>
|
||||
Dav On
|
||||
</Location></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"><Location /MSWord>
|
||||
DavMinTimeout 600
|
||||
</Location></pre>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="example" id="example">Activation de WebDAV</a></h2>
|
||||
<p>Pour activer le module <code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code>, ajoutez la ligne
|
||||
@@ -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"><Location /foo>
|
||||
Dav On
|
||||
</Location></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"><Location /MSWord>
|
||||
DavMinTimeout 600
|
||||
</Location></pre>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
|
||||
@@ -66,6 +66,86 @@
|
||||
<li><a href="http://www.webdav.org">WebDAV Resources</a></li>
|
||||
</ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="Dav" id="Dav">Dav</a> <a name="dav" id="dav">ディレクティブ</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>WebDAV HTTP メソッドを有効にします</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>Dav On|Off|<var>provider-name</var></code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>Dav Off</code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>ディレクトリ</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_dav</td></tr>
|
||||
</table>
|
||||
<p>与えられたコンテナで WebDAV HTTP メソッドが使えるようにするには
|
||||
次のようにします。</p>
|
||||
|
||||
<pre class="prettyprint lang-config"><Location /foo>
|
||||
Dav On
|
||||
</Location></pre>
|
||||
|
||||
|
||||
<p><code>On</code> という指定は実際には <code class="module"><a href="../mod/mod_dav_fs.html">mod_dav_fs</a></code>
|
||||
で提供されているデフォルトのプロバイダ、<code>filesystem</code>
|
||||
へのエイリアスになっています。一度あるロケーションで DAV
|
||||
を有効にした後は、そのサブロケーションで<em>無効化することはできない</em>
|
||||
ということに注意してください。完全な設定例は<a href="#example">上記のセクション</a> をご覧下さい。</p>
|
||||
|
||||
<div class="warning">
|
||||
サーバのセキュリティが確保できるまで WebDAV を有効にしないでください。
|
||||
そうしなければ誰でもそのサーバでファイルを配布することができるように
|
||||
なってしまいます。
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="DavDepthInfinity" id="DavDepthInfinity">DavDepthInfinity</a> <a name="davdepthinfinity" id="davdepthinfinity">ディレクティブ</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>PROPFIND, Depth: Infinity リクエストを許可します</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DavDepthInfinity on|off</code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>DavDepthInfinity off</code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_dav</td></tr>
|
||||
</table>
|
||||
<p>'Depth: Infinity' を含んでいる
|
||||
<code>PROPFIND</code> リクエストを処理できるようにするには、
|
||||
<code class="directive">DavDepthInfinity</code>
|
||||
ディレクティブを使います。このタイプのリクエストは
|
||||
denial-of-service アタックとなりうるので、
|
||||
デフォルトでは許可されていません。</p>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="DavMinTimeout" id="DavMinTimeout">DavMinTimeout</a> <a name="davmintimeout" id="davmintimeout">ディレクティブ</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>サーバが DAV リソースのロックを維持する最小時間です。
|
||||
</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DavMinTimeout <var>seconds</var></code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>DavMinTimeout 0</code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_dav</td></tr>
|
||||
</table>
|
||||
<p>クライアントが DAV リソースロックを要求した場合、
|
||||
ロックがサーバによって自動的に解除されるまでの時間を
|
||||
同時に指定することができます。この値は単なるリクエストであって、
|
||||
サーバはこれを無視することもできますし、
|
||||
任意の値をクライアントに通知することもできます。</p>
|
||||
|
||||
<p>クライアントに戻すロックタイムアウトの最小時間を、
|
||||
秒で、指定するために <code class="directive">DavMinTimeout</code>
|
||||
ディレクティブを使います。
|
||||
マイクロソフトのウェブフォルダのデフォルトでは 120 秒ですが;
|
||||
ネットワークの遅延のせいでクライアントがロックを失うのを減らすために、
|
||||
<code class="directive">DavMinTimeout</code> を使って
|
||||
これをもっと大きな値 (例えば 600 秒) に上書きできます。</p>
|
||||
|
||||
<div class="example"><h3>例</h3><pre class="prettyprint lang-config"><Location /MSWord>
|
||||
DavMinTimeout 600
|
||||
</Location></pre>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="example" id="example">Enabling WebDAV</a></h2>
|
||||
<p>mod_dav を有効にするには、<code>httpd.conf</code>
|
||||
@@ -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"><Location /foo>
|
||||
Dav On
|
||||
</Location></pre>
|
||||
|
||||
|
||||
<p><code>On</code> という指定は実際には <code class="module"><a href="../mod/mod_dav_fs.html">mod_dav_fs</a></code>
|
||||
で提供されているデフォルトのプロバイダ、<code>filesystem</code>
|
||||
へのエイリアスになっています。一度あるロケーションで DAV
|
||||
を有効にした後は、そのサブロケーションで<em>無効化することはできない</em>
|
||||
ということに注意してください。完全な設定例は<a href="#example">上記のセクション</a> をご覧下さい。</p>
|
||||
|
||||
<div class="warning">
|
||||
サーバのセキュリティが確保できるまで WebDAV を有効にしないでください。
|
||||
そうしなければ誰でもそのサーバでファイルを配布することができるように
|
||||
なってしまいます。
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="DavDepthInfinity" id="DavDepthInfinity">DavDepthInfinity</a> <a name="davdepthinfinity" id="davdepthinfinity">ディレクティブ</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>PROPFIND, Depth: Infinity リクエストを許可します</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DavDepthInfinity on|off</code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>DavDepthInfinity off</code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_dav</td></tr>
|
||||
</table>
|
||||
<p>'Depth: Infinity' を含んでいる
|
||||
<code>PROPFIND</code> リクエストを処理できるようにするには、
|
||||
<code class="directive">DavDepthInfinity</code>
|
||||
ディレクティブを使います。このタイプのリクエストは
|
||||
denial-of-service アタックとなりうるので、
|
||||
デフォルトでは許可されていません。</p>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="directive-section"><h2><a name="DavMinTimeout" id="DavMinTimeout">DavMinTimeout</a> <a name="davmintimeout" id="davmintimeout">ディレクティブ</a></h2>
|
||||
<table class="directive">
|
||||
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>サーバが DAV リソースのロックを維持する最小時間です。
|
||||
</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DavMinTimeout <var>seconds</var></code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>DavMinTimeout 0</code></td></tr>
|
||||
<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
|
||||
<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_dav</td></tr>
|
||||
</table>
|
||||
<p>クライアントが DAV リソースロックを要求した場合、
|
||||
ロックがサーバによって自動的に解除されるまでの時間を
|
||||
同時に指定することができます。この値は単なるリクエストであって、
|
||||
サーバはこれを無視することもできますし、
|
||||
任意の値をクライアントに通知することもできます。</p>
|
||||
|
||||
<p>クライアントに戻すロックタイムアウトの最小時間を、
|
||||
秒で、指定するために <code class="directive">DavMinTimeout</code>
|
||||
ディレクティブを使います。
|
||||
マイクロソフトのウェブフォルダのデフォルトでは 120 秒ですが;
|
||||
ネットワークの遅延のせいでクライアントがロックを失うのを減らすために、
|
||||
<code class="directive">DavMinTimeout</code> を使って
|
||||
これをもっと大きな値 (例えば 600 秒) に上書きできます。</p>
|
||||
|
||||
<div class="example"><h3>例</h3><pre class="prettyprint lang-config"><Location /MSWord>
|
||||
DavMinTimeout 600
|
||||
</Location></pre>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomlang">
|
||||
|
||||
@@ -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>
|
||||
<Location /foo><br />
|
||||
<span class="indent">
|
||||
Dav On<br />
|
||||
</span>
|
||||
</Location>
|
||||
</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>
|
||||
<Location /MSWord><br />
|
||||
<span class="indent">
|
||||
DavMinTimeout 600<br />
|
||||
</span>
|
||||
</Location>
|
||||
</code></p></div>
|
||||
|
||||
</div>
|
||||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||||
<div class="section">
|
||||
<h2><a name="example" id="example">WebDAV <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>
|
||||
<Location /foo><br />
|
||||
<span class="indent">
|
||||
Dav On<br />
|
||||
</span>
|
||||
</Location>
|
||||
</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>
|
||||
<Location /MSWord><br />
|
||||
<span class="indent">
|
||||
DavMinTimeout 600<br />
|
||||
</span>
|
||||
</Location>
|
||||
</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"> en </a> |
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user