blob: 520640679ed39cc3cf959ce8f02f1fb68548c594 [file]
<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="fr"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<!--
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
<title>rotatelogs - Rotation des journaux d'Apache par redirection de
ces derniers dans un "pipe" - Serveur HTTP Apache Version 2.5</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet">
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size">
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css"><link rel="stylesheet" type="text/css" href="../style/css/prettify.css">
<script src="../style/scripts/prettify.min.js">
</script>
<link href="../images/favicon.png" rel="shortcut icon"></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p>
<p class="apache">Serveur HTTP Apache Version 2.5</p>
<img alt="" src="../images/feather.png"></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif"></a></div>
<div id="path">
<a href="https://www.apache.org/">Apache</a> &gt; <a href="https://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="https://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.5</a> &gt; <a href="./">Programmes</a></div><div id="page-content"><div id="preamble"><h1>rotatelogs - Rotation des journaux d'Apache par redirection de
ces derniers dans un "pipe"</h1>
<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/programs/rotatelogs.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/programs/rotatelogs.html" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="../ko/programs/rotatelogs.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/programs/rotatelogs.html" hreflang="tr" rel="alternate" title="T&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div>
<p><code class="program"><a href="../programs/rotatelogs.html">rotatelogs</a></code> est un programme simple &agrave; utiliser en
conjonction avec la fonctionnalit&eacute; d'Apache de redirection dans un
"pipe" des fichiers journaux. Il supporte une rotation bas&eacute;e sur un
intervalle de temps ou une taille maximale du journal.</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif"> <a href="#synopsis">Syntaxe</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#options">Options</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#examples">Exemples</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#portability">Portabilit&eacute;</a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="synopsis">Syntaxe <a title="Lien permanent" href="#synopsis" class="permalink">&para;</a></h2>
<p><code><strong>rotatelogs</strong>
[ -<strong>l</strong> ]
[ -<strong>L</strong> <var>nom-lien</var> ]
[ -<strong>p</strong> <var>programme</var> ]
[ -<strong>f</strong> ]
[ -<strong>D</strong> ]
[ -<strong>t</strong> ]
[ -<strong>v</strong> ]
[ -<strong>e</strong> ]
[ -<strong>c</strong> ]
[ -<strong>n</strong> <var>nombre-de-fichiers</var> ]
<var>fichier-journal</var>
<var>heure-de-rotation</var>|<var>taille-fichier</var>(B|K|M|G)
[ <var>d&eacute;calage</var> ]</code></p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="options">Options <a title="Lien permanent" href="#options" class="permalink">&para;</a></h2>
<dl>
<dt><code>-l</code></dt>
<dd>Utilise le temps local plut&ocirc;t que GMT comme base pour l'intervalle
de temps ou pour le formatage de <code>strftime(3)</code> avec une
rotation bas&eacute;e sur la taille.</dd>
<dt><code>-L</code> <var>nom-lien</var></dt>
<dd><p>Etablit un lien physique entre le fichier journal courant et le lien
sp&eacute;cifi&eacute;. Cette option permet de consulter le journal de mani&egrave;re
continue malgr&eacute; les rotations via une commande du style <code>tail -F
nom-lien</code>.</p>
<p>Si le nom du lien sp&eacute;cifi&eacute; n'est pas un chemin absolu, il est relatif au
r&eacute;pertoire de travail de <code class="program"><a href="../programs/rotatelogs.html">rotatelogs</a></code> qui correspond &agrave; la valeur de
la directive <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code> lorsque la commande
<code class="program"><a href="../programs/rotatelogs.html">rotatelogs</a></code> est ex&eacute;cut&eacute;e par le serveur.
</p>
</dd>
<dt><code>-p</code> <var>programme</var></dt>
<dd><p>Avec cette option, <code class="program"><a href="../programs/rotatelogs.html">rotatelogs</a></code> ex&eacute;cutera le programme
<var>programme</var> chaque fois qu'un nouveau fichier journal sera
ouvert. Le nom du fichier nouvellement ouvert est pass&eacute; comme premier
argument au programme. Si l'ex&eacute;cution se produit apr&egrave;s une rotation,
l'ancien nom du fichier journal est pass&eacute; au programme comme second
argument.</p>
<p> <code class="program"><a href="../programs/rotatelogs.html">rotatelogs</a></code>
n'attend pas la fin du <var>programme</var> pour continuer son
ex&eacute;cution, et cessera tout enregistrement de codes d'erreur lorsqu'il
aura termin&eacute; son processus.</p>
<p>Le <var>programme</var> utilise les m&ecirc;mes
canaux stdin, stdout, et stderr que rotatelogs, et h&eacute;rite de son
environnement.</p>
<p>Lorsque deux param&egrave;tres sont fournis, les param&egrave;tres auront sous certaines
conditions la m&ecirc;me valeur, comme par exemple, dans le cas o&ugrave; la rotation est
d&eacute;clench&eacute;e alors que les portions du temps et de la date faisant partie du nom
du fichier journal ne sont pas modifi&eacute;es par cette rotation.</p>
</dd>
<dt><code>-f</code></dt>
<dd>Ouvre le fichier journal imm&eacute;diatement, d&egrave;s que
<code class="program"><a href="../programs/rotatelogs.html">rotatelogs</a></code> d&eacute;marre, au lieu d'attendre la lecture de la
premi&egrave;re entr&eacute;e de journal (pour les sites peu charg&eacute;s, il peut
s'&eacute;couler un temps substantiel entre le d&eacute;marrage du serveur et le
traitement de la premi&egrave;re requ&ecirc;te, temps pendant lequel le fichier
journal associ&eacute; n'"existe" pas, ce qui peut causer des probl&egrave;mes &agrave;
certains utilitaires de journalisation automatiques).</dd>
<dt><code>-D</code></dt>
<dd>Cr&eacute;e les r&eacute;pertoires parents du chemin du fichier journal s'ils
n'existent pas d&eacute;j&agrave;, ce qui permet d'utiliser le format
<code>strftime(3)</code> dans les chemins au lieu du nom de fichier seul.</dd>
<dt><code>-t</code></dt>
<dd>Provoque une troncature du fichier journal au lieu d'une rotation.
Cela peut s'av&eacute;rer utile lorsqu'un journal est &eacute;labor&eacute; en temps r&eacute;el par
une commande telle que tail, l'archivage des donn&eacute;es n'&eacute;tant ici pas
n&eacute;cessaire. Si aucun suffixe n'est ajout&eacute; au nom de fichier, les
cha&icirc;nes de format contenant des caract&egrave;res '%' sont cependant
respect&eacute;es.
</dd>
<dt><code>-T</code></dt>
<dd>Provoque la troncature de tous les fichiers journaux &agrave; leur ouverture, &agrave;
l'exception du fichier journal initial. Cette option s'av&egrave;re utile lorsque la
cha&icirc;ne de format contient quelque chose qui se r&eacute;p&egrave;te comme le jour du mois.
</dd>
<dt><code>-v</code></dt>
<dd>Affiche une sortie verbeuse sur STDERR. La sortie contient le
r&eacute;sultat de l'interpr&eacute;tation de la configuration, ainsi que toutes les
op&eacute;rations d'ouverture et de fermeture de fichiers.</dd>
<dt><code>-c</code></dt>
<dd>Cr&eacute;e un fichier journal pour chaque intervalle, m&ecirc;me s'il est vide.</dd>
<dt><code>-e</code></dt>
<dd>Envoie les messages de journalisation vers stdout. Ceci s'av&egrave;re
utile lorsque les journaux doivent &ecirc;tre trait&eacute;s par un autre programme.</dd>
<dt><code>-n <var>nombre-de-fichiers</var></code></dt>
<dd>Utilise une liste circulaire de noms de fichiers sans rep&egrave;res de temps.
Cette option permet d'&eacute;craser des fichiers journaux au d&eacute;marrage et au cours de
la rotation. Avec -n 3, la s&eacute;rie de fichiers conserv&eacute;s sera "logfile",
"logfile.1", "logfile.2" avec &eacute;crasement de "logfile".
<br>
Lorsque ce programme ouvre &laquo;&nbsp;logfile&nbsp;&raquo;, ce dernier sera seulement tronqu&eacute; si
l'option <code>-t</code> est aussi sp&eacute;cifi&eacute;e. Toute rotation subs&eacute;quente sera
pr&eacute;c&eacute;d&eacute;e d'une troncature du fichier cible. Dans le cas d'une rotation bas&eacute;e sur
la taille sans l'option <code>-t</code> et si des fichiers journaux sont d&eacute;j&agrave; en
place, cette option peut provoquer des r&eacute;sultats inattendus comme l'envoi des
entr&eacute;es de journal initiales vers &laquo;&nbsp;logfile.1&nbsp;&raquo;, les entr&eacute;es de &laquo;&nbsp;logfile.1&nbsp;&raquo;
n'&eacute;tant pas conserv&eacute;es, m&ecirc;me si des fichiers &laquo;&nbsp;logfile.n&nbsp;&raquo; n'ont pas encore &eacute;t&eacute;
utilis&eacute;s.
<br>
Disponible &agrave; partir de la version 2.4.5 du serveur HTTP Apache.</dd>
<dt><code><var>fichier-journal</var></code></dt>
<dd><p>Le chemin et le nom de base du fichier journal. Si
<var>fichier-journal</var> contient des caract&egrave;res '%', il est consid&eacute;r&eacute;
comme une cha&icirc;ne de formatage pour <code>strftime(3)</code>. Dans le cas
contraire, le suffixe <var>.nnnnnnnnnn</var> est automatiquement ajout&eacute;
et correspond au temps en secondes (sauf si l'option -t est sp&eacute;cifi&eacute;e).
Les deux formats calculent le temps
de d&eacute;marrage depuis le d&eacute;but de la p&eacute;riode courante. Par exemple, si un
temps de rotation de 86400 est sp&eacute;cifi&eacute;, les champs heure, minute et
seconde cr&eacute;&eacute;s &agrave; partir du format <code>strftime(3)</code> auront tous
pour valeur 0, en r&eacute;f&eacute;rence au d&eacute;but de la p&eacute;riode de 24 heures courante
(minuit).</p>
<p>Si vous utilisez le formatage de noms de fichiers
<code>strftime(3)</code>, assurez-vous que le format du fichier journal
poss&egrave;de une granularit&eacute; suffisamment importante pour g&eacute;n&eacute;rer un nom de
fichier diff&eacute;rent &agrave; chaque rotation des journaux. Si ce n'est pas le
cas, la rotation va &eacute;craser le fichier existant au lieu d'en g&eacute;n&eacute;rer un
nouveau. Par exemple, si <var>fichier-journal</var> &eacute;tait
<code>/var/log/errorlog.%Y-%m-%d</code> avec une rotation &agrave; 5
m&eacute;gaoctets, et si la limite de 5 m&eacute;gaoctets a &eacute;t&eacute; atteinte deux fois
dans la m&ecirc;me journ&eacute;e, le m&ecirc;me nom de fichier va &ecirc;tre g&eacute;n&eacute;r&eacute;, et la
rotation va &eacute;craser le fichier existant.</p>
<p>Si le nom du fichier journal n'est pas un chemin absolu, il est relatif au
r&eacute;pertoire de travail de <code class="program"><a href="../programs/rotatelogs.html">rotatelogs</a></code> qui correspond &agrave; la valeur de
la directive <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code> lorsque la commande
<code class="program"><a href="../programs/rotatelogs.html">rotatelogs</a></code> est ex&eacute;cut&eacute;e par le serveur.
</p>
</dd>
<dt><code><var>temps-rotation</var></code></dt>
<dd>Le temps entre deux rotations des fichiers journaux en secondes. La
rotation intervient au d&eacute;but de cet intervalle. Par exemple, si le temps
de rotation est de 3600, la rotation des fichiers journaux s'effectuera
au d&eacute;but de chaque heure ; si le temps de rotation est de 86400, la
rotation des fichiers journaux s'effectuera chaque nuit &agrave; minuit. (Si
aucune donn&eacute;e n'est enregistr&eacute;e au cours d'un intervalle, aucun fichier
ne sera cr&eacute;&eacute;).</dd>
<dt><code><var>taille-fichier</var>(B|K|M|G)</code></dt>
<dd>La taille maximale du fichier suivie par une des lettres
<code>B</code> (Octets), <code>K</code> (KOctets), <code>M</code> (MOctets)
ou <code>G</code> (GOctets).
<p>
Lorsque temps et taille sont sp&eacute;cifi&eacute;s, la taille doit l'&ecirc;tre apr&egrave;s le
temps. La rotation interviendra alors aussit&ocirc;t que l'une des deux limites
(temps ou taille) sera atteinte.
</p>
</dd>
<dt><code><var>d&eacute;calage</var></code></dt>
<dd>Le d&eacute;calage en minutes par rapport au temps UTC. Par d&eacute;faut, le
d&eacute;calage est consid&eacute;r&eacute; comme nul et c'est le temps UTC qui est utilis&eacute;.
Par exemple, pour utiliser le temps local de la zone UTC -5 heures,
sp&eacute;cifiez une valeur de <code>-300</code> pour cette option. Dans la
plupart des cas, il vaut mieux utiliser l'option <code>-l</code> que
sp&eacute;cifier un d&eacute;calage.</dd>
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="examples">Exemples <a title="Lien permanent" href="#examples" class="permalink">&para;</a></h2>
<div class="example"><pre class="prettyprint lang-config">CustomLog "|bin/rotatelogs /var/log/fichier-journal 86400" common</pre>
</div>
<p>Cette directive cr&eacute;e les fichiers /var/log/fichier-journal.nnnn
o&ugrave; nnnn correspond au temps syst&egrave;me auquel la journalisation
d&eacute;marre effectivement (ce temps sera toujours un multiple du temps
de rotation, si bien que vous pouvez synchroniser les scripts cron
avec lui). A la fin de chaque temps de rotation (ici apr&egrave;s 24
heures), une nouvelle journalisation d&eacute;marre.</p>
<div class="example"><pre class="prettyprint lang-config">CustomLog "|bin/rotatelogs -l /var/log/fichier-journal.%Y.%m.%d 86400" common</pre>
</div>
<p>Cette directive cr&eacute;e les fichiers
/var/log/fichier-journal.yyyy.mm.dd o&ugrave; yyyy correspond &agrave; l'ann&eacute;e,
mm au mois et dd au jour du mois. La journalisation basculera vers
un nouveau fichier chaque jour &agrave; minuit, temps local.</p>
<div class="example"><pre class="prettyprint lang-config">CustomLog "|bin/rotatelogs -l /var/log/logfile.%Y.%m 86400" common</pre>
</div>
<p>Cette directive cr&eacute;e les fichiers /var/log/logfile.yyyy.mm o&ugrave; yyyy
correspond &agrave; l'ann&eacute;e et mm au mois. La rotation sera d&eacute;clench&eacute;e chaque jour
&agrave; minuit, ainsi que l'ex&eacute;cution des programmes sp&eacute;cifi&eacute;s &agrave; l'aide de
l'option <code>-p</code>. Bien que la rotation soit effectu&eacute;e, le nom de
fichier ne sera modifi&eacute; qu'au cours de la premi&egrave;re rotation du mois. Les
rotations des autres jours du mois continueront sur le fichier de sortie et
y ajouteront leurs entr&eacute;es.
</p>
<div class="example"><pre class="prettyprint lang-config">CustomLog "|bin/rotatelogs /var/log/fichier-journal 5M" common</pre>
</div>
<p>Cette directive va effectuer une rotation du fichier journal
chaque fois que la taille de ce dernier atteindra 5 MOctets.</p>
<div class="example"><pre class="prettyprint lang-config">ErrorLog "|bin/rotatelogs /var/log/journal-erreurs.%Y-%m-%d-%H_%M_%S 5M"</pre>
</div>
<p>Cette directive va effectuer une rotation du fichier journal des
erreurs chaque fois que la taille de ce dernier atteindra 5
MOctets, et le nom du fichier journal se pr&eacute;sentera sous
la forme <code>journal-erreurs.YYYY-mm-dd-HH_MM_SS</code>.</p>
<div class="example"><pre class="prettyprint lang-config">CustomLog "|bin/rotatelogs -t /var/log/journal 86400" common</pre>
</div>
<p>Cet exemple cr&eacute;e le fichier <code>/var/log/journal</code> en le
tronquant au d&eacute;marrage, puis une fois par jour. Ce sc&eacute;nario implique qu'un
processus s&eacute;par&eacute; (tel que tail) traite le fichier en temps r&eacute;el.</p>
<div class="example"><pre class="prettyprint lang-config">CustomLog "|bin/rotatelogs -T /var/log/logfile.%d 86400" common</pre>
</div>
<p>Si le serveur est d&eacute;marr&eacute; (ou red&eacute;marr&eacute;) le premier de chaque mois, cela
s'ajoute au fichier <code>/var/log/logfile.01</code>. Lorsqu'une entr&eacute;e de
journal est &eacute;crite le deux du mois, le fichier <code>/var/log/logfile.02</code>
est tronqu&eacute; et les entr&eacute;es suivantes seront &eacute;crites au d&eacute;but du fichier. Cet
exemple permet de conserver environ un mois de journalisation sans maintenance
externe.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="portability">Portabilit&eacute; <a title="Lien permanent" href="#portability" class="permalink">&para;</a></h2>
<p>Les substitutions des cha&icirc;nes de format du fichier journal suivantes
doivent &ecirc;tre support&eacute;es par toutes les impl&eacute;mentations de
<code>strftime(3)</code> ; voir la page de manuel de
<code>strftime(3)</code> pour les extensions sp&eacute;cifiques &agrave; une
biblioth&egrave;que.</p>
<table class="bordered"><tr><td><code>%A</code></td><td>nom du jour de la semaine en entier
(localis&eacute;)</td></tr>
<tr class="odd"><td><code>%a</code></td><td>nom du jour de la semaine sur 3
caract&egrave;res (localis&eacute;)</td></tr>
<tr><td><code>%B</code></td><td>nom du mois en entier (localis&eacute;)</td></tr>
<tr class="odd"><td><code>%b</code></td><td>nom du mois sur 3 caract&egrave;res (localis&eacute;)</td></tr>
<tr><td><code>%c</code></td><td>date et heure (localis&eacute;)</td></tr>
<tr class="odd"><td><code>%d</code></td><td>jour du mois sur 2 chiffres</td></tr>
<tr><td><code>%H</code></td><td>heure sur 2 chiffres (de 0 &agrave; 24h)</td></tr>
<tr class="odd"><td><code>%I</code></td><td>heure sur 2 chiffres (de 0 &agrave; 12h)</td></tr>
<tr><td><code>%j</code></td><td>jour de l'ann&eacute;e sur 3 chiffres</td></tr>
<tr class="odd"><td><code>%M</code></td><td>minutes sur 2 chiffres</td></tr>
<tr><td><code>%m</code></td><td>mois sur 2 chiffres</td></tr>
<tr class="odd"><td><code>%p</code></td><td>suffixe am/pm pour l'heure de 0 &agrave; 12h
(localis&eacute;)</td></tr>
<tr><td><code>%S</code></td><td>secondes sur 2 chiffres</td></tr>
<tr class="odd"><td><code>%U</code></td><td>semaine de l'ann&eacute;e sur 2 chiffres
(Dimanche est le premier jour de la semaine)</td></tr>
<tr><td><code>%W</code></td><td> semaine de l'ann&eacute;e sur 2 chiffres
(Lundi est le premier jour de la semaine)</td></tr>
<tr class="odd"><td><code>%w</code></td><td>jour de la semaine sur 1 chiffre
(Dimanche est le premier jour de la semaine)</td></tr>
<tr><td><code>%X</code></td><td>heure (localis&eacute;e)</td></tr>
<tr class="odd"><td><code>%x</code></td><td>date (localis&eacute;e)</td></tr>
<tr><td><code>%Y</code></td><td>ann&eacute;e sur 4 chiffres</td></tr>
<tr class="odd"><td><code>%y</code></td><td>ann&eacute;e sur 2 chiffres</td></tr>
<tr><td><code>%Z</code></td><td>nom de la zone de temps</td></tr>
<tr class="odd"><td><code>%%</code></td><td>caract&egrave;re litt&eacute;ral `%'</td></tr>
</table>
</div></div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/programs/rotatelogs.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/programs/rotatelogs.html" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="../ko/programs/rotatelogs.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/programs/rotatelogs.html" hreflang="tr" rel="alternate" title="T&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2026 The Apache Software Foundation.<br>Autoris&eacute; sous <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p></div><script><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
}
var langToggle = document.querySelector('.lang-toggle');
var topLang = document.querySelector('.toplang');
if (langToggle && topLang) {
langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
}
var qv = document.getElementById('quickview');
if (qv) {
document.body.appendChild(qv);
var qvBtn = document.createElement('button');
qvBtn.className = 'qv-toggle';
qvBtn.setAttribute('aria-label', 'Toggle page navigation');
qvBtn.innerHTML = '&#9776;';
document.body.appendChild(qvBtn);
qvBtn.addEventListener('click', function() {
var isOpen = qv.classList.toggle('open');
if (isOpen) {
qv.style.top = window.scrollY + 10 + 'px';
}
});
window.addEventListener('scroll', function() { qv.classList.remove('open'); });
}
//--><!]]></script>
</body></html>