HEX
Server: Apache
System: Linux wp-jo-wordpress-79f99b7d9d-ngh2p 6.12.67-0-virt #1-Alpine SMP PREEMPT_DYNAMIC 2026-01-27 02:08:12 x86_64
User: (1001)
PHP: 8.4.25
Disabled: NONE
Upload Files
File: /opt/bitnami/apache2/manual/mod/mod_proxy_html.html.fr.utf8
<!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>mod_proxy_html - Serveur HTTP Apache Version 2.4</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>
<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.4</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.4</a> &gt; <a href="./">Modules</a></div>
<div id="page-content">
<div id="preamble"><h1>Module Apache mod_proxy_html</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/mod/mod_proxy_html.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_proxy_html.html" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a></p>
</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>R&eacute;&eacute;crit les liens HTML afin de s'assurer qu'ils soient bien
adressables depuis les r&eacute;seaux des clients dans un contexte de
mandataire.</td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur&nbsp;de&nbsp;Module:</a></th><td>proxy_html_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">Fichier&nbsp;Source:</a></th><td>mod_proxy_html.c</td></tr>
<tr><th><a href="module-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible depuis la version 2.4 du serveur HTTP Apache.</td></tr></table>
<h3>Sommaire</h3>

    <p>Ce module fournit un filtre en sortie permettant de r&eacute;&eacute;crire les liens
    HTML dans un contexte de mandataire, afin de s'assurer que ces liens
    fonctionnent pour les utilisateurs en dehors du mandataire. Il accomplit la
    m&ecirc;me t&acirc;che que la directive <code class="directive"><a href="../mod/mod_proxy.html#proxypassreverse">ProxyPassReverse</a></code> d'Apache accomplit pour les
    en-t&ecirc;tes HTTP, et fait partie des composants essentiels d'un mandataire
    inverse.</p>

<p>Par exemple, si une entreprise poss&egrave;de un serveur d'applications
nomm&eacute; appserver.example.com qui n'est visible que depuis son r&eacute;seau
interne, et un serveur web public <code>www.example.com</code>, il peut
&ecirc;tre souhaitable de fournir une passerelle vers le serveur d'application
&agrave; l'adresse <code>http://www.example.com/appserver/</code>. Lorsque le
serveur d'applications pr&eacute;sente un lien vers lui-m&ecirc;me, ce lien doit &ecirc;tre
r&eacute;&eacute;crit pour fonctionner &agrave; travers la passerelle. A cet effet,
<code class="module"><a href="../mod/mod_proxy_html.html">mod_proxy_html</a></code> permet de r&eacute;&eacute;crire <code>&lt;a
href="http://appserver.example.com/foo/bar.html"&gt;foobar&lt;/a&gt;</code>
en <code>&lt;a
href="http://www.example.com/appserver/foo/bar.html"&gt;foobar&lt;/a&gt;</code>,
ce qui permet de rendre le serveur d'applications accessible depuis
l'ext&eacute;rieur.</p>

<p>mod_proxy_html a &eacute;t&eacute; d&eacute;velopp&eacute; &agrave; l'origine &agrave; Web&THORN;ing, dont la <a href="http://apache.webthing.com/mod_proxy_html/">documentation</a>
d&eacute;taill&eacute;e pourra s'av&eacute;rer utile aux utilisateurs.</p>
</div>
<div id="quickview"><h3 class="directives">Directives</h3>
<ul id="toc">
<li><img alt="" src="../images/down.gif"> <a href="#proxyhtmlbufsize">ProxyHTMLBufSize</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#proxyhtmlcharsetout">ProxyHTMLCharsetOut</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#proxyhtmldoctype">ProxyHTMLDocType</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#proxyhtmlenable">ProxyHTMLEnable</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#proxyhtmlevents">ProxyHTMLEvents</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#proxyhtmlextended">ProxyHTMLExtended</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#proxyhtmlfixups">ProxyHTMLFixups</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#proxyhtmlinterp">ProxyHTMLInterp</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#proxyhtmllinks">ProxyHTMLLinks</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#proxyhtmlmeta">ProxyHTMLMeta</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#proxyhtmlstripcomments">ProxyHTMLStripComments</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#proxyhtmlurlmap">ProxyHTMLURLMap</a></li>
</ul>
<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&amp;list_id=144532&amp;product=Apache%20httpd-2&amp;query_format=specific&amp;order=changeddate%20DESC%2Cpriority%2Cbug_severity&amp;component=mod_proxy_html">Probl&egrave;mes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&amp;component=mod_proxy_html">Signaler un bug</a></li></ul></div>

<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="proxyhtmlbufsize">Directive <span id="ProxyHTMLBufSize">ProxyHTMLBufSize</span> <a title="Lien permanent" href="#proxyhtmlbufsize" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D&eacute;finit l'incr&eacute;ment de la taille du tampon, ainsi que sa
taille initiale, pour la mise en
tampon des scripts en ligne et des feuilles de style.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyHTMLBufSize <var>nb-octets</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>ProxyHTMLBufSize 8192</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_html</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible depuis la version 2.4 du serveur HTTP Apache.
Disponible en tant que module tiers dans les versions 2.x ant&eacute;rieures.</td></tr>
</table>
<p>Pour pouvoir interpr&eacute;ter du contenu non HTML (feuilles de style et
scripts) embarqu&eacute; dans des documents HTML, <code class="module"><a href="../mod/mod_proxy_html.html">mod_proxy_html</a></code> doit
le lire et le m&eacute;moriser en entier dans un
tampon. Ce tampon devra &ecirc;tre &eacute;tendu autant que n&eacute;cessaire afin de
pouvoir accueillir le plus grand script ou la plus grande feuille de
style de la page, selon un incr&eacute;ment de <var>nb-octets</var> que cette
directive permet de d&eacute;finir.</p>
<p>La valeur par d&eacute;faut est 8192 et sera suffisante pour la plupart des
pages. Cependant, si vous savez que vous allez mandater des
pages contenant des feuilles de style et/ou scripts plus grands que 8k
(cette taille s'entend pour chaque script ou feuilles de style, non pour
leur ensemble), il sera plus efficace de d&eacute;finir une taille de
tampon initiale plus grande afin d'&eacute;viter d'avoir &agrave; le redimensionner
dynamiquement au cours du traitement d'une requ&ecirc;te.
</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="proxyhtmlcharsetout">Directive <span id="ProxyHTMLCharsetOut">ProxyHTMLCharsetOut</span> <a title="Lien permanent" href="#proxyhtmlcharsetout" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sp&eacute;cifie un jeu de caract&egrave;res pour la sortie de
mod_proxy_html.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyHTMLCharsetOut <var>jeu-de-caract&egrave;res | *</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>ProxyHTMLCharsetOut UTF-8</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_html</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible depuis la version 2.4 du serveur HTTP Apache.
Disponible en tant que module tiers dans les versions 2.x ant&eacute;rieures.</td></tr>
</table>
<p>Cette directive permet de sp&eacute;cifier un jeu de caract&egrave;res pour la
sortie de mod_proxy_html. Elle ne devrait jamais &ecirc;tre utilis&eacute;e, car tout
changement par rapport &agrave; la valeur par d&eacute;faut <code>UTF-8</code> (Unicode -
utilis&eacute; en interne par libxml2) induit une charge suppl&eacute;mentaire de
traitement. La d&eacute;finition sp&eacute;ciale <code>ProxyHTMLCharsetOut *</code>
permet de g&eacute;n&eacute;rer une sortie qui utilisera le m&ecirc;me encodage que
l'entr&eacute;e.</p>
<p>Notez que tout ceci ne fonctionne que si le module
<code class="module"><a href="../mod/mod_xml2enc.html">mod_xml2enc</a></code> est charg&eacute;.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="proxyhtmldoctype">Directive <span id="ProxyHTMLDocType">ProxyHTMLDocType</span> <a title="Lien permanent" href="#proxyhtmldoctype" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D&eacute;finit une d&eacute;claration de type de document HTML ou XHTML.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyHTMLDocType HTML|XHTML [Legacy]<br><strong>OR</strong>
<br>ProxyHTMLDocType <var>fpi</var> [SGML|XML]</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_html</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible depuis la version 2.4 du serveur HTTP Apache.
Disponible en tant que module tiers dans les versions 2.x ant&eacute;rieures.</td></tr>
</table>
<p>Avec la premi&egrave;re syntaxe, les documents seront d&eacute;clar&eacute;s de type HTML
4.01 ou XHTML 1.0 selon l'option sp&eacute;cifi&eacute;e. Cette option d&eacute;termine aussi
si la syntaxe utilis&eacute;e en sortie est HTML ou XHTML. Notez que le format
des documents en provenance du serveur d'arri&egrave;re-plan n'est pas
important, car l'interpr&eacute;teur le d&eacute;tectera automatiquement. Si le
second argument optionnel est d&eacute;fini &agrave; <code>Legacy</code>, les documents seront
d&eacute;clar&eacute;s de type "Transitional" ; cette option peut &ecirc;tre n&eacute;cessaire si
vous mandatez du contenu datant d'avant 1998, ou si vous travaillez avec
des outils de cr&eacute;ation/publication d&eacute;ficients.</p>
<p>Avec la deuxi&egrave;me syntaxe, cette directive vous permet d'ins&eacute;rer votre
propre FPI (Formal Public Identifier). Le second argument optionnel
d&eacute;termine si la syntaxe utilis&eacute;e sera SGML/HTML ou XML/XHTML.</p>
<p>Par d&eacute;faut, aucun FPI n'est ins&eacute;r&eacute;, &eacute;tant donn&eacute; qu'il vaut mieux pas
de FPI du tout qu'un FPI bogu&eacute;. Si par contre votre serveur d'arri&egrave;re-plan
g&eacute;n&egrave;re du contenu HTML ou XHTML correct, vous pouvez d&eacute;finir cette
directive en cons&eacute;quence.</p>
<p>Avec la premi&egrave;re syntaxe, mod_proxy_html va aussi mettre le code HTML
en conformit&eacute; avec le standard sp&eacute;cifi&eacute;. Il ne pourra pas corriger
toutes les erreurs, mais il va supprimer les &eacute;l&eacute;ments et attributs non
conformes. Il peut aussi journaliser les autres erreurs si la directive
<code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> est d&eacute;finie &agrave;
Debug.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="proxyhtmlenable">Directive <span id="ProxyHTMLEnable">ProxyHTMLEnable</span> <a title="Lien permanent" href="#proxyhtmlenable" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Permet d'activer/d&eacute;sactiver le filtre proxy_html.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyHTMLEnable On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>ProxyHTMLEnable Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_html</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible depuis la version 2.4 du serveur HTTP Apache.
Disponible en tant que module tiers dans les versions 2.x ant&eacute;rieures.</td></tr>
</table>
    <p>Cette directive est un simple commutateur permettant
    d'activer/d&eacute;sactiver le filtre proxy_html. Si
    <code class="module"><a href="../mod/mod_xml2enc.html">mod_xml2enc</a></code> est charg&eacute;, elle va aussi activer
    automatiquement le support de l'internationalisation.</p>
    <p>Notez que le filtre proxy_html s'agira que si les donn&eacute;es sont de
    type HTML (Content-Type text/html ou application/xhtml+xml), et si
    elles passent par un mandataire. Vous pouvez passer outre ces
    contraintes (&agrave; vos risques et p&eacute;rils) en d&eacute;finissant la variable
    d'environnement <var>PROXY_HTML_FORCE</var>.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="proxyhtmlevents">Directive <span id="ProxyHTMLEvents">ProxyHTMLEvents</span> <a title="Lien permanent" href="#proxyhtmlevents" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sp&eacute;cifie les attributs &agrave; traiter comme des &eacute;v&egrave;nements de
type scripting.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyHTMLEvents <var>attribut [attribut ...]</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_html</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible depuis la version 2.4 du serveur HTTP Apache.
Disponible en tant que module tiers dans les versions 2.x ant&eacute;rieures.</td></tr>
</table>
<p>Cette directive permet de sp&eacute;cifier un ou plusieurs attributs &agrave;
traiter comme
des &eacute;v&egrave;nements de type scripting et de leur appliquer les r&egrave;gles
<code class="directive"><a href="#proxyhtmlurlmap">ProxyHTMLURLMap</a></code> lorsqu'elles ont &eacute;t&eacute; d&eacute;finies. Vous
pouvez sp&eacute;cifier un nombre quelconque d'attributs dans une ou plusieurs
directives <code class="directive">ProxyHTMLEvents</code>.</p>
<div class="note"><h3>N&eacute;cessite ProxyHTMLExtended</h3>
<p>Les &eacute;v&egrave;nements de type scripting  ne sont trait&eacute;s que si la directive
<code class="directive"><a href="#proxyhtmlextended">ProxyHTMLExtended</a></code> est d&eacute;finie &agrave;
<var>On</var>. Dans le cas contraire, les attributs d'&eacute;v&egrave;nement sont transmis
sans modification, m&ecirc;me s'ils sont list&eacute;s dans la directive
<code class="directive">ProxyHTMLEvents</code>.</p>
</div>
<p>Normalement, cette directive est d&eacute;finie globalement. Si vous
d&eacute;finissez <code class="directive">ProxyHTMLEvents</code> &agrave; plusieurs niveaux, certains niveaux
l'emportant sur d'autres, vous devrez sp&eacute;cifier un jeu complet
d'&eacute;v&egrave;nements pour chaque niveau.</p>
<p>Le fichier <var>proxy-html.conf</var> fournit une configuration par
d&eacute;faut et d&eacute;finit les &eacute;v&egrave;nements selon les standards
HTML 4 et XHTML 1.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="proxyhtmlextended">Directive <span id="ProxyHTMLExtended">ProxyHTMLExtended</span> <a title="Lien permanent" href="#proxyhtmlextended" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D&eacute;termine si l'on doit corriger les liens dans les scripts
en ligne, les feuilles de style et les &eacute;v&egrave;nements de type scripting.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyHTMLExtended On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>ProxyHTMLExtended Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_html</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible depuis la version 2.4 du serveur HTTP Apache.
Disponible en tant que module tiers dans les versions 2.x ant&eacute;rieures.</td></tr>
</table>
<p>Si cette directive est d&eacute;finie &agrave; <code>Off</code>, les liens HTML
sont r&eacute;&eacute;crits en fonction des directives
<code class="directive"><a href="#proxyhtmlurlmap">ProxyHTMLURLMap</a></code>, mais les liens qui apparaissent
dans le code Javascript et les feuilles de style restent inchang&eacute;s.</p>
<p>Si elle est d&eacute;finie &agrave; <code>On</code>, tous les &eacute;v&egrave;nements de type
scripting (d&eacute;finis par la directive
<code class="directive"><a href="#proxyhtmlevents">ProxyHTMLEvents</a></code>) et les scripts inclus ou les
feuilles de style sont aussi
trait&eacute;s par les r&egrave;gles <code class="directive"><a href="#proxyhtmlurlmap">ProxyHTMLURLMap</a></code>, en
fonction des drapeaux d&eacute;finis pour chacune d'entre elles. Ne d&eacute;finissez
cette directive &agrave; <code>On</code> qu'en cas de n&eacute;cessit&eacute; absolue, car la
charge suppl&eacute;mentaire induite impacte les performances.</p>
<p>Vous devez aussi pr&ecirc;ter attention aux mod&egrave;les de comparaison, car
l'interpr&eacute;teur n'a aucune notion de la forme que pourrait prendre une URL dans un
script embarqu&eacute; ou une feuille de style. En particulier, la comparaison
&eacute;tendus du caract&egrave;re <code>/</code> a de fortes chances d'induire des
correspondances erron&eacute;es.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="proxyhtmlfixups">Directive <span id="ProxyHTMLFixups">ProxyHTMLFixups</span> <a title="Lien permanent" href="#proxyhtmlfixups" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Corrige les erreurs HTML simples.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyHTMLFixups [lowercase] [dospath] [reset]</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>ProxyHTMLFixups none</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_html</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible depuis la version 2.4 du serveur HTTP Apache.
Disponible en tant que module tiers dans les versions 2.x ant&eacute;rieures.</td></tr>
</table>
<p>Cette directive accepte un &agrave; trois arguments parmi les suivants :</p>
<ul>
<li><code>lowercase</code> Les Urls sont r&eacute;&eacute;crites en minuscules</li>
<li><code>dospath</code> Les slashes invers&eacute;s dans les URLs sont
remplac&eacute;s par des slashes directs.</li>
<li><code>reset</code> Annule toute option d&eacute;finie &agrave; un niveau sup&eacute;rieur
dans la configuration</li>
</ul>
<p>Cette directive doit &ecirc;tre utilis&eacute;e avec prudence. Elle peut corriger
certaines erreurs de cr&eacute;ation, mais risque aussi de modifier par erreur
des liens corrects. Ne l'utilisez que si vous &ecirc;tes s&ucirc;r que le serveur
d'arri&egrave;re-plan est d&eacute;ficient.</p> 

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="proxyhtmlinterp">Directive <span id="ProxyHTMLInterp">ProxyHTMLInterp</span> <a title="Lien permanent" href="#proxyhtmlinterp" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active la r&eacute;interpr&eacute;tation des r&egrave;gles
<code class="directive">ProxyHTMLURLMap</code> pour chaque requ&ecirc;te.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyHTMLInterp On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>ProxyHTMLInterp Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_html</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible depuis la version 2.4 du serveur HTTP Apache.
Disponible en tant que module tiers dans les versions 2.x ant&eacute;rieures.</td></tr>
</table>
    <p>Cette directive permet d'activer le r&eacute;interpr&eacute;tation pour chaque
    requ&ecirc;te des mod&egrave;les source et cible de la directive
    <code class="directive"><a href="#proxyhtmlurlmap">ProxyHTMLURLMap</a></code>.</p>
    <p>Si la r&eacute;interpr&eacute;tation n'est pas activ&eacute;e, toutes les r&egrave;gles sont
    pr&eacute;compil&eacute;es au d&eacute;marrage du serveur. Si elle est activ&eacute;e, les
    r&egrave;gles doivent &ecirc;tre recompil&eacute;es pour chaque requ&ecirc;te, ce qui induit
    une charge de traitement suppl&eacute;mentaire. Elle ne doit donc &ecirc;tre activ&eacute;e que si
    cela s'av&egrave;re n&eacute;cessaire.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="proxyhtmllinks">Directive <span id="ProxyHTMLLinks">ProxyHTMLLinks</span> <a title="Lien permanent" href="#proxyhtmllinks" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sp&eacute;cifie les &eacute;l&eacute;ments HTML dont les attributs d'URL doivent
&ecirc;tre r&eacute;&eacute;crits.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyHTMLLinks <var>&eacute;l&eacute;ment attribut [attribut2 ...]</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_html</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible depuis la version 2.4 du serveur HTTP Apache.
Disponible en tant que module tiers dans les versions 2.x ant&eacute;rieures.</td></tr>
</table>
<p>Cette directive permet de sp&eacute;cifier les &eacute;l&eacute;ments dont les attributs d'URL
doivent &ecirc;tre r&eacute;&eacute;crits en utilisant les r&egrave;gles standards <code class="directive"><a href="#proxyhtmlurlmap">ProxyHTMLURLMap</a></code>. Vous devez d&eacute;finir une
directive <code class="directive">ProxyHTMLLinks</code> pour chaque &eacute;l&eacute;ment, mais chacune d'entre elles peut
sp&eacute;cifier un nombre quelconque d'attributs</p> <p>Normalement, cette directive
est d&eacute;finie globalement. Si vous d&eacute;finissez <code class="directive">ProxyHTMLLinks</code> &agrave; plusieurs niveaux,
certains niveaux l'emportant sur d'autres, vous devrez sp&eacute;cifier un jeu complet
de liens pour chaque niveau.</p> <p>Le fichier <var>proxy-html.conf</var>
fournit une configuration par d&eacute;faut et d&eacute;finit les liens HTML selon les
standards HTML 4 et XHTML 1.</p>
<div class="example"><h3>Exemples issus de proxy-html.conf</h3><pre class="prettyprint lang-config">ProxyHTMLLinks  a          href
ProxyHTMLLinks  area       href
ProxyHTMLLinks  link       href
ProxyHTMLLinks  img        src longdesc usemap
ProxyHTMLLinks  object     classid codebase data usemap
ProxyHTMLLinks  q          cite
ProxyHTMLLinks  blockquote cite
ProxyHTMLLinks  ins        cite
ProxyHTMLLinks  del        cite
ProxyHTMLLinks  form       action
ProxyHTMLLinks  input      src usemap
ProxyHTMLLinks  head       profile
ProxyHTMLLinks  base       href
ProxyHTMLLinks  script     src for</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="proxyhtmlmeta">Directive <span id="ProxyHTMLMeta">ProxyHTMLMeta</span> <a title="Lien permanent" href="#proxyhtmlmeta" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active ou d&eacute;sactive une pr&eacute;interpr&eacute;tation suppl&eacute;mentaire
des m&eacute;tadonn&eacute;es dans les sections HTML <code>&lt;head&gt;</code>.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyHTMLMeta On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>ProxyHTMLMeta Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_html</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible &agrave; partir de la version 2.4 du serveur HTTP
Apache ; propos&eacute; en tant que module tiers dans les versions 2.x
pr&eacute;c&eacute;dentes.</td></tr>
</table>
    <p>Cette directive permet d'activer ou d&eacute;sactiver une
    pr&eacute;interpr&eacute;tation suppl&eacute;mentaire des m&eacute;tadonn&eacute;es dans les sections
    HTML <code>&lt;head&gt;</code>. Si cette pr&eacute;interpr&eacute;tation n'est pas
    requise, d&eacute;finissez ProxyHTMLMeta &agrave; Off et les performances
    seront l&eacute;g&egrave;rement am&eacute;lior&eacute;es. Cependant, elle s'av&egrave;re parfois
    n&eacute;cessaire pour assurer un fonctionnement correct de l'internationalisation.</p>
    <p>La directive <code class="directive">ProxyHTMLMeta</code> a deux effets. Le premier et le plus
    important est la d&eacute;tection des codages de caract&egrave;res d&eacute;clar&eacute;s sous
    la forme</p>
    <pre>&lt;meta http-equiv="Content-Type" content="text/html;charset=<var>foo</var>"&gt;</pre>
    <p>ou, dans le cas d'un document XHTML, sous la forme d'une
    d&eacute;claration XML. Elle n'est pas n&eacute;cessaire si le jeu de caract&egrave;res
    est d&eacute;clar&eacute; explicitement dans un en-t&ecirc;te HTTP (ce qui est
    pr&eacute;f&eacute;rable) en provenance du serveur d'arri&egrave;re-plan, ou si le
    document est en <var>utf-8</var> (unicode) ou un de ses
    sous-ensembles comme ASCII. Vous pourrez aussi vous en passer
    lorsque le document utilise une valeur par d&eacute;faut d&eacute;clar&eacute;e via la
    directive <code class="directive"><a href="../mod/mod_xml2enc.html#xml2encdefault">xml2EncDefault</a></code>, avec le risque de
    propager une d&eacute;claration incorrecte. Une directive
    <code class="directive"><a href="#proxyhtmlcharsetout">ProxyHTMLCharsetOut</a></code> permettra d'annuler ce
    risque, mais pourra induire une surcharge de traitement sup&eacute;rieure &agrave;
    celle de ProxyHTMLMeta.</p>
    <p>Le deuxi&egrave;me effet est l'interpr&eacute;tation de toutes les d&eacute;clarations
    <code>&lt;meta http-equiv=...&gt;</code> et leur conversion en
    en-t&ecirc;tes HTTP, afin de conserver le but original de cette forme
    de m&eacute;ta&eacute;l&eacute;ment HTML.</p>

    <div class="warning"><h3>Avertissement</h3> Compte tenu du fait que la
    directive ProxyHTMLMeta promeut <strong>tous</strong> les &eacute;l&eacute;ments
    <code>http-equiv</code> au rang d'en-t&ecirc;tes HTTP, il est conseill&eacute; de ne
    l'activer que si vous faites autant confiance au contenu HTML qu'&agrave; votre
    serveur mandataire. Avec cette directive en effet, si ce contenu est g&eacute;r&eacute;
    par des gens malintentionn&eacute;s, ces derniers seront en mesure d'injecter des
    en-t&ecirc;tes HTTP arbitraires et peut-&ecirc;tre malveillants dans les r&eacute;ponses de
    votre serveur.  
    </div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="proxyhtmlstripcomments">Directive <span id="ProxyHTMLStripComments">ProxyHTMLStripComments</span> <a title="Lien permanent" href="#proxyhtmlstripcomments" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D&eacute;termine si les commentaires HTML doivent &ecirc;tre supprim&eacute;s.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyHTMLStripComments On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>ProxyHTMLStripComments Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_html</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible depuis la version 2.4 du serveur HTTP Apache.
Disponible en tant que module tiers dans les versions 2.x ant&eacute;rieures.</td></tr>
</table>
<p>Si cette directive est d&eacute;finie &agrave; <code>On</code>, mod_proxy_html
supprimera les commentaires HTML. Notez que cela supprimera aussi tout
script ou style inclus dans les commentaires (une monstruosit&eacute;
introduite en 1995/1996 avec Netscape 2 pour les navigateurs plus
anciens, et encore utilis&eacute;e de nos jours). Cette directive peut aussi
interf&eacute;rer avec des processeurs bas&eacute;s sur les commentaires comme SSI ou
ESI : assurez-vous d'ex&eacute;cuter ces derniers <em>avant</em> mod_proxy_html
dans la cha&icirc;ne de filtrage si vous supprimez les commentaires !</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="proxyhtmlurlmap">Directive <span id="ProxyHTMLURLMap">ProxyHTMLURLMap</span> <a title="Lien permanent" href="#proxyhtmlurlmap" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D&eacute;finit une r&egrave;gle de r&eacute;&eacute;criture des liens HTML</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyHTMLURLMap <var>mod&egrave;le-source mod&egrave;le-cible [drapeaux] [cond]</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_html</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible depuis la version 2.4 du serveur HTTP Apache.
Disponible en tant que module tiers dans les versions 2.x ant&eacute;rieures.</td></tr>
</table>
<p>Il s'agit de la directive la plus importante pour la r&eacute;&eacute;criture des
liens HTML. Lors de l'interpr&eacute;tation d'un document, chaque fois qu'un
lien correspond &agrave; <var>mod&egrave;le-source</var>, la partie du lien concern&eacute;e
sera r&eacute;&eacute;crite en <var>mod&egrave;le-cible</var>, en tenant compte des
modifications induites par les drapeaux &eacute;ventuellement sp&eacute;cifi&eacute;s et par
la directive <code class="directive"><a href="#proxyhtmlextended">ProxyHTMLExtended</a></code>.
Ne seront consid&eacute;r&eacute;s comme des liens HTML que les &eacute;l&eacute;ments sp&eacute;cifi&eacute;s via la
directive <code class="directive"><a href="#proxyhtmllinks">ProxyHTMLLinks</a></code>.</p>

<p>Le troisi&egrave;me argument optionnel permet de d&eacute;finir un des drapeaux
suivants (les drapeaux sont sensibles &agrave; la casse) :</p>
<dl>
<dt>h</dt>
<dd><p>Ignore les liens HTML (les traverse sans les modifier)</p></dd>
<dt>e</dt>
<dd><p>Ignore les &eacute;v&egrave;nements de scripting (les traverse sans les
modifier)</p></dd>
<dt>c</dt>
<dd><p>Traverse les sections de type style ou script sans les modifier.</p></dd>

<dt>L</dt>
<dd><p>Last-match. Si cette r&egrave;gle s'applique, aucune autre r&egrave;gle ne sera
prise en compte (notez qu'il s'agit du comportement automatique pour les
liens HTML).</p></dd>
<dt>l</dt>
<dd><p>L'oppos&eacute; de L. Passe outre le comportement par d&eacute;faut du
changement unique pour les liens HTML.</p></dd>
<dt>R</dt>
<dd><p>Utilise des expressions rationnelles pour les mod&egrave;les.
<code>mod&egrave;le-source</code> est une expression rationnelle, et
<code>mod&egrave;le-cible</code> une cha&icirc;ne de remplacement qui peut &ecirc;tre bas&eacute;e
elle aussi sur une expression rationnelle. La m&eacute;morisation dans les
expressions rationnelles est support&eacute;e : vous pouvez utiliser des
parenth&egrave;ses () dans le <code>mod&egrave;le-source</code>, et r&eacute;cup&eacute;rer la
correspondance de leur contenu via les variables $1 &agrave; $9 dans le
<code>mod&egrave;le-cible</code>.</p>

<p>Si le drapeau R n'est pas fourni, la directive utilisera des cha&icirc;nes
litt&eacute;rales pour les diff&eacute;rents mod&egrave;les de recherche/remplacement. La
logique de recherche est <em>"commence par"</em> dans les liens HTML, et
<em>"contient"</em> dans les &eacute;v&egrave;nements de scripting et les sections de
type style ou script.
</p>
</dd>
<dt>x</dt>
<dd><p>Utilise les expressions rationnelles &eacute;tendues POSIX. Ne
s'applique qu'avec R.</p></dd>
<dt>i</dt>
<dd><p>Recherche de correspondance sensible &agrave; la casse. Ne
s'applique qu'avec R.</p></dd>

<dt>n</dt>
<dd><p>D&eacute;sactive la m&eacute;morisation dans les expressions rationnelles (pour
am&eacute;liorer les performances). Ne s'applique qu'avec R.</p></dd>
<dt>s</dt>
<dd><p>Recherche de correspondance dans les expressions rationnelles
bas&eacute;e sur la ligne. Ne s'applique qu'avec R.</p></dd>
<dt>^</dt>
<dd><p>Recherche de correspondance au d&eacute;but seulement. Ne concerne que
les recherches de correspondance par rapport &agrave; des cha&icirc;nes, et ne
s'applique pas aux liens HTML.</p></dd>
<dt>$</dt>
<dd><p>Recherche de correspondance &agrave; la fin seulement. Ne concerne que
les recherches de correspondance par rapport &agrave; des cha&icirc;nes, et ne
s'applique pas aux liens HTML.</p></dd>
<dt>V</dt>
<dd><p>Ins&egrave;re des variables d'environnement dans le
<code>mod&egrave;le-cible</code>. Un <code>mod&egrave;le-cible</code> de la forme
<code>${varname|default}</code> sera remplac&eacute; par la valeur de la
variable d'environnement <code>varname</code>. Si cette derni&egrave;re n'est
pas d&eacute;finie, <code>mod&egrave;le-cible</code> sera remplac&eacute; par
<code>default</code>. La sp&eacute;cification de <code>|default</code> est
facultative.</p>
<p>NOTE: l'insertion de variables d'environnement n'est possible que si
la directive <code class="directive"><a href="#proxyhtmlinterp">ProxyHTMLInterp</a></code> a &eacute;t&eacute; d&eacute;finie &agrave;
<var>On</var>.</p>
</dd>

<dt>v</dt>
<dd><p>Ins&egrave;re des variables d'environnement dans le
<code>mod&egrave;le-source</code>. La syntaxe du mod&egrave;le est identique &agrave; la
syntaxe pr&eacute;c&eacute;dente.</p>
<p>NOTE: l'insertion de variables d'environnement n'est possible que si
la directive <code class="directive"><a href="#proxyhtmlinterp">ProxyHTMLInterp</a></code> a &eacute;t&eacute; d&eacute;finie &agrave;
<var>On</var>.</p>
</dd>
</dl>

<p>Le quatri&egrave;me argument optionnel <strong>cond</strong> d&eacute;finit une
condition qui sera &eacute;valu&eacute;e pour chaque requ&ecirc;te, sous r&eacute;serve que la
directive <code class="directive"><a href="#proxyhtmlinterp">ProxyHTMLInterp</a></code> ait &eacute;t&eacute; d&eacute;finie &agrave;
<var>On</var>. Si la condition est &eacute;valu&eacute;e &agrave; FALSE, la r&egrave;gle ne sera pas
appliqu&eacute;e &agrave; la requ&ecirc;te. Si elle est &eacute;valu&eacute;e &agrave; TRUE, ou si aucune
condition n'est d&eacute;finie, la r&egrave;gle s'applique.</p>
<p>La <strong>condition</strong> est &eacute;valu&eacute;e par l'<a href="../expr.html">interpr&eacute;teur d'expression</a>. La syntaxe simple des
conditions dans mod_proxy_html 3.x pour HTTPD 2.0 et 2.2 est aussi
support&eacute;e.</p>

</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_proxy_html.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_proxy_html.html" title="Fran&ccedil;ais">&nbsp;fr&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>