1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
4 <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7 This file is generated from xml source: DO NOT EDIT
8 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
10 <title>mod_remoteip - Serveur Apache HTTP Version 2.5</title>
11 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
12 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
13 <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" />
14 <script src="../style/scripts/prettify.min.js" type="text/javascript">
17 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
19 <div id="page-header">
20 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
21 <p class="apache">Serveur Apache HTTP Version 2.5</p>
22 <img alt="" src="../images/feather.png" /></div>
23 <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
25 <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Modules</a></div>
26 <div id="page-content">
27 <div id="preamble"><h1>Module Apache mod_remoteip</h1>
29 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_remoteip.html" hreflang="en" rel="alternate" title="English"> en </a> |
30 <a href="../fr/mod/mod_remoteip.html" title="Français"> fr </a></p>
32 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Remplace l'adresse IP du client
33 pour la requête par l'adresse IP présentée par un mandataire ou un
34 répartiteur de charge via les en-têtes de la requête.
36 <tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Base</td></tr>
37 <tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>remoteip_module</td></tr>
38 <tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_remoteip.c</td></tr></table>
41 <p>Ce module permet de traiter le client qui a initié la
42 requête en tant que client original du point de vue de httpd à
43 des fins d'autorisation et de connexion, même si ce client se
44 trouve derrière un répartiteur de charge, un serveur frontal, ou un
45 serveur mandataire.</p>
47 <p>Le module remplace l'adresse IP du client
48 pour la connexion par l'adresse IP indiquée dans
49 l'en-tête de requête configuré via la directive
50 <code class="directive"><a href="#remoteipheader">RemoteIPHeader</a></code>.</p>
52 <p>Une fois sa valeur modifiée comme indiqué, cette adresse IP client est
53 utilisée pour la fonctionnalité <code class="directive"><a href="../mod/mod_authz_host.html#require">Require ip</a></code> de
54 <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> ; elle est aussi affichée par
55 <code class="module"><a href="../mod/mod_status.html">mod_status</a></code>, et enregistrée via les chaînes de formatage
56 <code>%a</code> des modules <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code> et <code class="module"><a href="../mod/core.html">core</a></code>.
57 L'adresse IP client sous-jacente de la connexion est enregistrée via la chaîne de
58 formatage <code>%{c}a</code>.
61 <div class="warning">Il est essentiel de n'activer cette
62 fonctionnalité que pour les requêtes en provenance des serveurs
63 intermédiaires (mandataires, etc...) auxquels le serveur peut faire
64 confiance, car il est trivial pour le client distant d'usurper
65 l'identité d'un autre client.</div>
67 <div id="quickview"><h3>Sujets</h3>
69 <li><img alt="" src="../images/down.gif" /> <a href="#processing">Traitement des adresses distantes</a></li>
70 </ul><h3 class="directives">Directives</h3>
72 <li><img alt="" src="../images/down.gif" /> <a href="#remoteipheader">RemoteIPHeader</a></li>
73 <li><img alt="" src="../images/down.gif" /> <a href="#remoteipinternalproxy">RemoteIPInternalProxy</a></li>
74 <li><img alt="" src="../images/down.gif" /> <a href="#remoteipinternalproxylist">RemoteIPInternalProxyList</a></li>
75 <li><img alt="" src="../images/down.gif" /> <a href="#remoteipproxiesheader">RemoteIPProxiesHeader</a></li>
76 <li><img alt="" src="../images/down.gif" /> <a href="#remoteiptrustedproxy">RemoteIPTrustedProxy</a></li>
77 <li><img alt="" src="../images/down.gif" /> <a href="#remoteiptrustedproxylist">RemoteIPTrustedProxyList</a></li>
79 <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__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_remoteip">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_remoteip">Signaler un bug</a></li></ul><h3>Voir aussi</h3>
81 <li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li>
82 <li><code class="module"><a href="../mod/mod_status.html">mod_status</a></code></li>
83 <li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li>
84 <li><a href="#comments_section">Commentaires</a></li></ul></div>
85 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
87 <h2><a name="processing" id="processing">Traitement des adresses distantes</a></h2>
89 <p>Par défaut, Apache identifie le client via la valeur client_ip de la
90 connexion, et de cette valeur découlent les valeurs remote_host et
91 remote_logname de la connexion. Ces champs jouent un rôle
92 dans l'authentification, l'autorisation et la journalisation, ainsi que
93 dans d'autres traitements effectués par d'autres modules
96 <p>mod_remoteip remplace l'adresse IP client de la connexion par l'adresse IP client
97 indiquée par exemple par un mandataire ou un répartiteur de charge
98 pour toute la durée de la requête. Un répartiteur de charge pourra ainsi
99 établir une connexion keepalive de longue durée avec le serveur, chaque
100 requête conservant alors l'adresse IP client correcte bien que l'adresse IP
101 client sous-jacente du répartiteur de charge reste inchangée.</p>
103 <p>Lorsque la valeur de l'en-tête comporte plusieurs adresses IP
104 client séparées par des virgules, celles-ci sont traitées de la
105 droite vers la gauche. Le traitement s'arrête lorsque l'adresse IP
106 client courante n'est pas digne de confiance pour présenter
107 l'adresse IP précédente. Le champ d'en-tête est alors mis à jour de
108 façon à ne contenir que cette liste d'adresses non confirmées, ou
109 bien, si toutes les adresses IP sont dignes de confiance, cet
110 en-tête est tout bonnement supprimé de la requête.</p>
112 <p>Lors du remplacement de l'adresse IP client, le module stocke
113 la liste des hôtes intermédiaires dans un mémo
114 remoteip-proxy-ip-list, que l'on peut faire enregistrer par
115 <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code> en utilisant le symbole de format
116 <code>%{remoteip-proxy-ip-list}n</code>. Si l'administrateur doit
117 stocker ceci dans un en-tête additionnel, la même valeur peut aussi
118 être enregistrée sous la forme d'un en-tête en utilisant la
119 directive <code class="directive"><a href="#remoteipproxiesheader">RemoteIPProxiesHeader</a></code>.</p>
121 <div class="note"><h3>Adresses IPv4 converties au format IPv6</h3>
122 Avec httpd, d'une manière générale, toute adresse IPv4 convertie au
123 format IPv6 est enregistrée sous sa forme IPv4.</div>
125 <div class="note"><h3>Adresses internes (privées)</h3>
126 Tous les blocs d'adresses internes 10/8, 172.16/12, 192.168/16,
127 169.254/16 and 127/8 (ainsi que les adresses IPv6 en dehors du bloc
128 public 2000::/3 block) ne sont évaluées par mod_remoteip que lorsque
129 des mandataires internes (intranet)
130 <code class="directive"><a href="#remoteipinternalproxy">RemoteIPInternalProxy</a></code> sont enregistrés.</div>
133 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
134 <div class="directive-section"><h2><a name="remoteipheader" id="remoteipheader">Directive</a> <a name="RemoteIPHeader" id="RemoteIPHeader">RemoteIPHeader</a></h2>
135 <table class="directive">
136 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le champ d'en-tête qui contiendra les adresses IP
138 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RemoteIPHeader <var>en-tête</var></code></td></tr>
139 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
140 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
141 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_remoteip</td></tr>
143 <p>La directive <code class="directive"><a href="#remoteipheader">RemoteIPHeader</a></code> indique à
144 <code class="module"><a href="../mod/mod_remoteip.html">mod_remoteip</a></code> de traiter la valeur de
145 l'<var>en-tête</var> spécifié comme l'adresse IP du client, ou comme
146 une liste d'adresses IP clients intermédiaires, en fonction de la
147 configuration des directives
148 <code class="directive"><a href="#remoteipinternalproxy">RemoteIPInternalProxy</a></code> et
149 <code class="directive"><a href="#remoteiptrustedproxy">RemoteIPTrustedProxy</a></code>.</p>
151 <div class="warning">Si ces deux dernières
152 directives ne sont pas utilisées, <code class="module"><a href="../mod/mod_remoteip.html">mod_remoteip</a></code>
153 traitera tout hôte présentant une adresse non interne
154 dans l'en-tête <code class="directive"><a href="#remoteipheader">RemoteIPHeader</a></code> comme hôte de
157 <div class="example"><h3>Exemple à usage interne (répartiteur de
158 charge)</h3><pre class="prettyprint lang-config">RemoteIPHeader X-Client-IP</pre>
161 <div class="example"><h3>Exemple dans le cas d'un mandataire</h3><pre class="prettyprint lang-config">RemoteIPHeader X-Forwarded-For</pre>
165 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
166 <div class="directive-section"><h2><a name="remoteipinternalproxy" id="remoteipinternalproxy">Directive</a> <a name="RemoteIPInternalProxy" id="RemoteIPInternalProxy">RemoteIPInternalProxy</a></h2>
167 <table class="directive">
168 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Déclare les adresses IP intranet clients comme dignes de
169 confiance pour présenter la valeur RemoteIPHeader</td></tr>
170 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RemoteIPInternalProxy
171 <var>ip-mandataire</var>|<var>ip-mandataire/sous-réseau</var>|<var>nom-hôte</var> ...</code></td></tr>
172 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
173 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
174 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_remoteip</td></tr>
176 <p>La directive <code class="directive"><a href="#remoteipinternalproxy">RemoteIPInternalProxy</a></code> permet
177 d'ajouter une ou plusieurs adresses (ou blocs d'adresses) auxquelles
178 on peut faire confiance pour présenter une valeur RemoteIPHeader
179 valide de l'adresse IP du client. A la différence de la directive
180 <code class="directive"><a href="#remoteiptrustedproxy">RemoteIPTrustedProxy</a></code>, toute adresse IP
181 présentée dans cet en-tête, y comprises les adresses intranet
182 privées, sont considérées comme dignes de confiance lorsqu'elles
183 sont indiquées par ces mandataires.</p>
185 <div class="example"><h3>Exemple à usage interne (répartiteur de
186 charge)</h3><pre class="prettyprint lang-config">RemoteIPHeader X-Client-IP
187 RemoteIPInternalProxy 10.0.2.0/24
188 RemoteIPInternalProxy gateway.localdomain</pre>
192 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
193 <div class="directive-section"><h2><a name="remoteipinternalproxylist" id="remoteipinternalproxylist">Directive</a> <a name="RemoteIPInternalProxyList" id="RemoteIPInternalProxyList">RemoteIPInternalProxyList</a></h2>
194 <table class="directive">
195 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Déclare les adresses IP intranet clients comme dignes de
196 confiance pour présenter la valeur RemoteIPHeader</td></tr>
197 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RemoteIPInternalProxyList <var>nom-fichier</var></code></td></tr>
198 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
199 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
200 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_remoteip</td></tr>
202 <p>La directive <code class="directive"><a href="#remoteipinternalproxylist">RemoteIPInternalProxyList</a></code>
203 permet de spécifier un fichier parcouru au démarrage du serveur pour
204 construire une liste d'adresses (ou blocs d'adresses), auxquelles
205 on peut faire confiance pour présenter une valeur RemoteIPHeader
206 valide de l'adresse IP du client.</p>
208 <p>Le caractère '<code>#</code>' indique une ligne de commentaires,
209 sinon, toutes les lignes séparées par un caractère <code>nouvelle
211 tous les éléments d'une ligne séparés par un espace sont traités de
212 la même façon qu'avec la directive
213 <code class="directive"><a href="#remoteipinternalproxy">RemoteIPInternalProxy</a></code>.</p>
215 <div class="example"><h3>Exemple à usage interne (répartiteur de
216 charge)</h3><pre class="prettyprint lang-config">RemoteIPHeader X-Client-IP
217 RemoteIPInternalProxyList conf/trusted-proxies.lst</pre>
220 <div class="example"><h3>contenu de conf/mandataires-de-confiance.lst</h3><pre> # Nos mandataires internes de confiance
221 10.0.2.0/24 # Tout le monde dans le groupe de test
222 passerelle.domaine-local # Le frontal répartiteur de charge</pre></div>
225 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
226 <div class="directive-section"><h2><a name="remoteipproxiesheader" id="remoteipproxiesheader">Directive</a> <a name="RemoteIPProxiesHeader" id="RemoteIPProxiesHeader">RemoteIPProxiesHeader</a></h2>
227 <table class="directive">
228 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Déclare le champ d'en-tête qui contiendra toutes les
229 adresses IP intermédiaires</td></tr>
230 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RemoteIPProxiesHeader <var>Nom_en-tête</var></code></td></tr>
231 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
232 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
233 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_remoteip</td></tr>
235 <p>La directive <code class="directive"><a href="#remoteipproxiesheader">RemoteIPProxiesHeader</a></code> permet
236 de spécifier l'en-tête dans lequel <code class="module"><a href="../mod/mod_remoteip.html">mod_remoteip</a></code> va
237 collecter une liste de toutes les adresses IP clients intermédiaires
238 auxquelles on pourra faire confiance pour résoudre l'adresse IP
239 client de la requête. Notez que les adresses intermédiaires
240 <code class="directive"><a href="#remoteiptrustedproxy">RemoteIPTrustedProxy</a></code> sont enregistrées dans
241 cet en-tête, alors que toute adresse intermédiaire
242 <code class="directive"><a href="#remoteipinternalproxy">RemoteIPInternalProxy</a></code> est omise.</p>
244 <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">RemoteIPHeader X-Forwarded-For
245 RemoteIPProxiesHeader X-Forwarded-By</pre>
249 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
250 <div class="directive-section"><h2><a name="remoteiptrustedproxy" id="remoteiptrustedproxy">Directive</a> <a name="RemoteIPTrustedProxy" id="RemoteIPTrustedProxy">RemoteIPTrustedProxy</a></h2>
251 <table class="directive">
252 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Restreint les adresses IP clients dignes de
253 confiance pour présenter la valeur RemoteIPHeader</td></tr>
254 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RemoteIPTrustedProxy
255 <var>ip-mandataire</var>|<var>ip-mandataire/sous-réseau</var>|<var>nom-hôte</var> ...</code></td></tr>
256 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
257 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
258 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_remoteip</td></tr>
260 <p>La directive <code class="directive"><a href="#remoteiptrustedproxy">RemoteIPTrustedProxy</a></code> permet
261 de définir quelles adresses IP (ou blocs d'adresses) seront
262 considérées comme de confiance pour présenter une valeur RemoteIPHeader
263 valide de l'adresse IP du client.</p>
265 <p>A la différence de la directive
266 <code class="directive"><a href="#remoteipinternalproxy">RemoteIPInternalProxy</a></code>, toutes les adresses IP
267 intranet ou privées indiquées par de tels mandataires, y compris les
268 blocs d'adresses 10/8, 172.16/12, 192.168/16, 169.254/16 et 127/8
269 (ou située en dehors du bloc IPv6 public 2000::/3), ne sont pas
270 dignes de confiance en tant qu'adresses IP clientes, et se situent
271 à gauche dans le contenu de l'en-tête
272 <code class="directive"><a href="#remoteipheader">RemoteIPHeader</a></code>.</p>
274 <div class="warning">Par défaut, <code class="module"><a href="../mod/mod_remoteip.html">mod_remoteip</a></code>
275 considérera comme de confiance tout hôte présentant une adresse non
276 interne dans l'en-tête <code class="directive"><a href="#remoteipheader">RemoteIPHeader</a></code>.
279 <div class="example"><h3>Exemple d'adresse de confiance (répartiteur de
280 charge</h3><pre class="prettyprint lang-config">RemoteIPHeader X-Forwarded-For
281 RemoteIPTrustedProxy 10.0.2.16/28
282 RemoteIPTrustedProxy proxy.example.com</pre>
286 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
287 <div class="directive-section"><h2><a name="remoteiptrustedproxylist" id="remoteiptrustedproxylist">Directive</a> <a name="RemoteIPTrustedProxyList" id="RemoteIPTrustedProxyList">RemoteIPTrustedProxyList</a></h2>
288 <table class="directive">
289 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Restreint les adresses IP clients dignes de
290 confiance pour présenter la valeur RemoteIPHeader</td></tr>
291 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RemoteIPTrustedProxyList <var>nom-fichier</var></code></td></tr>
292 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
293 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
294 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_remoteip</td></tr>
296 <p>La directive <code class="directive"><a href="#remoteiptrustedproxylist">RemoteIPTrustedProxyList</a></code>
297 permet de spécifier un fichier parcouru au démarrage du serveur pour
298 construire une liste d'adresses (ou blocs d'adresses), auxquelles
299 on peut faire confiance pour présenter une valeur RemoteIPHeader
300 valide de l'adresse IP du client.</p>
302 <p>Le caractère '<code>#</code>' indique une ligne de commentaires,
303 sinon, toutes les lignes séparées par un caractère nouvelle ligne ou
304 tous les éléments d'une ligne séparés par un espace sont traités de
305 la même façon qu'avec la directive
306 <code class="directive"><a href="#remoteiptrustedproxy">RemoteIPTrustedProxy</a></code>.</p>
308 <div class="example"><h3>Exemple d'adresse de confiance (répartiteur de
309 charge</h3><pre class="prettyprint lang-config">RemoteIPHeader X-Forwarded-For
310 RemoteIPTrustedProxyList conf/trusted-proxies.lst</pre>
313 <div class="example"><h3>conf/mandataires-de-confiance.lst contents</h3><p><code>
314 # Mandataires externes identifiés<br />
315 192.0.2.16/28 #groupe wap phone de mandataires<br />
316 proxy.isp.example.com #un FAI bien connu
321 <div class="bottomlang">
322 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_remoteip.html" hreflang="en" rel="alternate" title="English"> en </a> |
323 <a href="../fr/mod/mod_remoteip.html" title="Français"> fr </a></p>
324 </div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
325 <script type="text/javascript"><!--//--><![CDATA[//><!--
326 var comments_shortname = 'httpd';
327 var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_remoteip.html';
329 if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
330 d.write('<div id="comments_thread"><\/div>');
331 var s = d.createElement('script');
332 s.type = 'text/javascript';
334 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
335 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
338 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
340 })(window, document);
341 //--><!]]></script></div><div id="footer">
342 <p class="apache">Copyright 2016 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
343 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
344 if (typeof(prettyPrint) !== 'undefined') {