]> granicus.if.org Git - apache/blob - docs/manual/rewrite/vhosts.html.fr
Fix xml validation error
[apache] / docs / manual / rewrite / vhosts.html.fr
1 <?xml version="1.0" encoding="UTF-8"?>
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=UTF-8" http-equiv="Content-Type" />
5 <!--
6         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7               This file is generated from xml source: DO NOT EDIT
8         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
9       -->
10 <title>Hébergement virtuel de masse avec mod_rewrite - Serveur HTTP Apache 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">
15 </script>
16
17 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
18 <body id="manual-page"><div id="page-header">
19 <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>
20 <p class="apache">Serveur HTTP Apache Version 2.5</p>
21 <img alt="" src="../images/feather.png" /></div>
22 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
23 <div id="path">
24 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.5</a> &gt; <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>Hébergement virtuel de masse avec mod_rewrite</h1>
25 <div class="toplang">
26 <p><span>Langues Disponibles: </span><a href="../en/rewrite/vhosts.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
27 <a href="../fr/rewrite/vhosts.html" title="Français">&nbsp;fr&nbsp;</a></p>
28 </div>
29
30
31 <p>Ce document est un complément à la <a href="../mod/mod_rewrite.html">documentation de référence</a> du module
32 <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>. Il décrit comment créer des serveurs
33 virtuels dynamiquement configurés en utilisant
34 <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p>
35
36 <div class="warning">L'utilisation de mod_rewrite n'est en général pas la
37 meilleure méthode pour configurer des serveurs virtuels. Vous devez dans un
38 premier temps tenter de résoudre votre problème via ces  <a href="../vhosts/mass.html">d'autres méthodes</a> avant d'avoir recours à
39 mod_rewrite. Voir aussi le document <a href="avoid.html#vhosts">Comment éviter
40 il'utilisation de mod_rewrite</a>.</div>
41
42
43 </div>
44 <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#per-hostname">Serveurs virtuels pour des noms d'hôtes arbitraires</a></li>
45 <li><img alt="" src="../images/down.gif" /> <a href="#simple.rewrite">Configuration dynamique de serveurs
46 virtuels via <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code></a></li>
47 <li><img alt="" src="../images/down.gif" /> <a href="#xtra-conf">Utilisation d'un fichier de configuration
48 du serveur virtuel séparé</a></li>
49 </ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Documentation du module</a></li><li><a href="intro.html">Introduction à mod_rewrite</a></li><li><a href="remapping.html">Redirection et remise en
50 correspondance</a></li><li><a href="access.html">Contrôle d'accès</a></li><li><a href="proxy.html">Serveurs mandataires</a></li><li><a href="rewritemap.html">Utilisation de RewriteMap</a></li><li><a href="advanced.html">Techniques avancées</a></li><li><a href="avoid.html">Quand ne pas utiliser mod_rewrite</a></li><li><a href="#comments_section">Commentaires</a></li></ul></div>
51 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
52 <div class="section">
53 <h2><a name="per-hostname" id="per-hostname">Serveurs virtuels pour des noms d'hôtes arbitraires</a><a title="Lien permanent" href="#per-hostname" class="permalink">&para;</a></h2>
54
55   
56
57   <dl>
58     <dt>Description :</dt>
59
60     <dd>
61     <p>Nous voulons créer automatiquement un serveur virtuel pour tout
62     nom d'hôte qui peut être résolu dans notre domaine, sans avoir à
63     créer de nouvelle section VirtualHost.</p>
64
65     <p>Dans cet exemple, nous supposons que nous utilisons le nom d'hôte
66     <code><strong>SITE</strong>.example.com</code> pour chaque
67     utilisateur, et que nous servons leur contenu depuis
68     <code>/home/<strong>SITE</strong>/www</code>. Nous souhaitons cependant que
69     <code>www.example.com</code> n'apparaisse pas dans cette mise en correspondance.</p>
70     </dd>
71
72     <dt>Solution :</dt>
73
74     <dd>
75
76 <pre class="prettyprint lang-config">RewriteEngine on
77
78 RewriteMap    lowercase int:tolower
79
80 RewriteCond   %{HTTP_HOST} !^www\.
81 RewriteCond   ${lowercase:%{<strong>HTTP_HOST</strong>}}   ^<strong>([^.]+)</strong>\.example\.com$
82 RewriteRule   ^(.*)    /home/<strong>%1</strong>/www$1</pre>
83 </dd>
84
85 <dt>Discussion</dt>
86     <dd>
87
88     <div class="warning">Vous devez vérifier le bon fonctionnement de la
89     résolution DNS - Apache ne gère pas la résolution de nom. Vous
90     devrez créer soit des enregistrements CNAME pour chaque nom d'hôte,
91     soit un enregistrement DNS avec caractères génériques. La création
92     des enregistrements DNS est en dehors du sujet de ce document.</div>
93
94 <p>La directive RewriteMap interne <code>tolower</code> permet de
95 s'assurer que les noms d'hôtes utilisés seront tous en minuscules, de
96 façon à éviter toute ambiguité dans la structure des répertoires qui
97 doit être créée.</p>
98
99 <p>Les contenus des parenthèses utilisées dans une directive <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code> sont enregistrés dans les
100 références arrières <code>%1</code>, <code>%2</code>, etc..., alors que
101 les contenus des parenthèses utilisées dans une directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> le sont dans les
102 références arrières <code>$1</code>, <code>$2</code>, etc...</p>
103
104 <p>La première directive <code>RewriteCond</code> vérifie si le nom d'hôte
105 commence par <code>www.</code> et si c'est le cas, la réécriture est annulée.</p>
106
107 <p>
108 Comme c'est le cas pour de nombreuses techniques discutées dans ce
109 document, mod_rewrite n'est vraiment pas la meilleure méthode pour
110 accomplir cette tâche. Vous devez plutôt vous tourner vers
111 <code class="module"><a href="../mod/mod_vhost_alias.html">mod_vhost_alias</a></code>, car ce dernier sera bien plus à même
112 de gérer tout ce qui est au delà du domaine des fichiers statiques,
113 comme les contenus dynamiques et la résolution des alias.
114 </p>
115     </dd>
116   </dl>
117
118 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
119 <div class="section">
120 <h2><a name="simple.rewrite" id="simple.rewrite">Configuration dynamique de serveurs
121 virtuels via <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code></a><a title="Lien permanent" href="#simple.rewrite" class="permalink">&para;</a></h2>
122
123     <p>Cet extrait du fichier <code>httpd.conf</code> permet d'obtenir
124     le même résultat que <a href="#per-hostname">le premier exemple</a>.
125     La première moitié est très similaire à la partie correspondante
126     ci-dessus, excepté quelques modifications requises à des fins de
127     compatibilité ascendante et pour faire en sorte que la partie
128     <code>mod_rewrite</code> fonctionne correctement ; la seconde moitié
129     configure <code>mod_rewrite</code> pour effectuer le travail
130     proprement dit.</p>
131
132     <p>Comme <code>mod_rewrite</code> s'exécute avant tout autre module
133     de traduction d'URI (comme <code>mod_alias</code>), il faut lui
134     ordonner explicitement d'ignorer toute URL susceptible d'être
135     traitée par ces autres modules. Et comme ces règles auraient sinon
136     court-circuité toute directive <code>ScriptAlias</code>, nous devons
137     faire en sorte que <code>mod_rewrite</code> déclare explicitement
138     ces correspondances.</p>
139
140 <pre class="prettyprint lang-config"># extrait le nom de serveur de l'en-tête Host:
141 UseCanonicalName Off
142
143 # journaux dissociables
144 LogFormat "%{Host}i %h %l %u %t \"%r\" %s %b" vcommon
145 CustomLog "logs/access_log" vcommon
146
147 &lt;Directory "/www/hosts"&gt;
148     # ExecCGI est nécessaire ici car on ne peut pas forcer l'exécution
149     # des CGI à la manière de ScriptAlias
150     Options FollowSymLinks ExecCGI
151 &lt;/Directory&gt;
152
153 RewriteEngine On
154
155 # un nom de serveur extrait d'un en-tête Host: peut être dans n'importe
156 # quelle casse
157 RewriteMap  lowercase  "int:tolower"
158
159 ## on s'occupe tout d'abord des documents normaux :<br />
160 # permet à Alias /icons/ de fonctionner - répéter pour les autres
161 RewriteCond  "%{REQUEST_URI}"  "!^/icons/"
162 # permet aux CGIs de fonctionner
163 RewriteCond  "%{REQUEST_URI}"  "!^/cgi-bin/"
164 # le coeur du traitement
165 RewriteRule  "^/(.*)$"  "/www/hosts/${lowercase:%{SERVER_NAME}}/docs/$1"
166
167 ## on s'occupe maintenant des CGIs - on doit forcer l'utilisation d'un
168 # gestionnaire
169 RewriteCond  "%{REQUEST_URI}"  "^/cgi-bin/"
170 RewriteRule  "^/(.*)$" "/www/hosts/${lowercase:%{SERVER_NAME}}/cgi-bin/$1"  [H=cgi-script]</pre>
171
172
173 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
174 <div class="section">
175 <h2><a name="xtra-conf" id="xtra-conf">Utilisation d'un fichier de configuration
176 du serveur virtuel séparé</a><a title="Lien permanent" href="#xtra-conf" class="permalink">&para;</a></h2>
177
178     <p>Cette construction utilise des fonctionnalités plus avancées de
179     <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> pour effectuer la traduction depuis le
180     serveur virtuel vers la racine des documents, à partir d'un fichier
181     de configuration séparé. Elle est plus souple mais nécessite une
182     configuration plus compliquée.</p>
183
184     <p>Le fichier <code>vhost.map</code> devrait ressembler à ceci :</p>
185
186 <div class="example"><p><code>
187 www.client-1.example.com  /www/clients/1<br />
188 www.client-2.example.com  /www/clients/2<br />
189 # ...<br />
190 www.client-N.example.com  /www/clients/N<br />
191 </code></p></div>
192
193     <p>On doit ajouter à <code>httpd.conf</code> :</p>
194
195 <pre class="prettyprint lang-config">RewriteEngine on
196
197 RewriteMap   lowercase  "int:tolower"
198
199 # définit le fichier de correspondances
200 RewriteMap   vhost      "txt:/www/conf/vhost.map"
201
202 # on s'occupe des alias comme ci-dessus
203 RewriteCond  "%{REQUEST_URI}"               "!^/icons/"
204 RewriteCond  "%{REQUEST_URI}"               "!^/cgi-bin/"
205 RewriteCond  "${lowercase:%{SERVER_NAME}}"  "^(.+)$"
206 # on effectue ici la remise en correspondance à base de fichier
207 RewriteCond  "${vhost:%1}"                  "^(/.*)$"
208 RewriteRule  "^/(.*)$"                      "%1/docs/$1"
209
210 RewriteCond  "%{REQUEST_URI}"               "^/cgi-bin/"
211 RewriteCond  "${lowercase:%{SERVER_NAME}}"  "^(.+)$"
212 RewriteCond  "${vhost:%1}"                  "^(/.*)$"
213 RewriteRule  "^/cgi-bin/(.*)$"              "%1/cgi-bin/$1" [H=cgi-script]</pre>
214
215
216 </div></div>
217 <div class="bottomlang">
218 <p><span>Langues Disponibles: </span><a href="../en/rewrite/vhosts.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
219 <a href="../fr/rewrite/vhosts.html" title="Français">&nbsp;fr&nbsp;</a></p>
220 </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&amp;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>
221 <script type="text/javascript"><!--//--><![CDATA[//><!--
222 var comments_shortname = 'httpd';
223 var comments_identifier = 'http://httpd.apache.org/docs/trunk/rewrite/vhosts.html';
224 (function(w, d) {
225     if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
226         d.write('<div id="comments_thread"><\/div>');
227         var s = d.createElement('script');
228         s.type = 'text/javascript';
229         s.async = true;
230         s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
231         (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
232     }
233     else {
234         d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
235     }
236 })(window, document);
237 //--><!]]></script></div><div id="footer">
238 <p class="apache">Copyright 2018 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
239 <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[//><!--
240 if (typeof(prettyPrint) !== 'undefined') {
241     prettyPrint();
242 }
243 //--><!]]></script>
244 </body></html>