]> granicus.if.org Git - apache/blob - docs/manual/rewrite/vhosts.html.fr
Rebuild.
[apache] / docs / manual / rewrite / vhosts.html.fr
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" />
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 Apache HTTP Version 2.4</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/directives.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 Apache HTTP Version 2.4</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.4</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 pas la meilleure
37 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
39 recours à mod_rewrite. Voir aussi le document <a href="avoid.html#vhosts">Comment éviter l'utilisation de
40 mod_rewrite</a>.</div>
41
42
43 </div>
44 <div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><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></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>www.<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>.</p>
69     </dd>
70
71     <dt>Solution :</dt>
72
73     <dd>
74
75 <pre class="prettyprint lang-config">RewriteEngine on
76
77 RewriteMap    lowercase int:tolower
78
79 RewriteCond   "${lowercase:%{<strong>HTTP_HOST</strong>}}" "^www\.<strong>([^.]+)</strong>\.example\.com$"
80 RewriteRule   "^(.*)" "/home/<strong>%1</strong>/www$1"</pre>
81 </dd>
82
83 <dt>Discussion</dt>
84     <dd>
85
86     <div class="warning">Vous devez vérifier le bon fonctionnement de la
87     résolution DNS - Apache ne gère pas la résolution de nom. Vous
88     devrez créer soit des enregistrements CNAME pour chaque nom d'hôte,
89     soit un enregistrement DNS avec caractères génériques. La création
90     des enregistrements DNS est en dehors du sujet de ce document.</div>
91
92 <p>La directive RewriteMap interne <code>tolower</code> permet de
93 s'assurer que les noms d'hôtes utilisés seront tous en minuscules, de
94 façon à éviter toute ambiguité dans la structure des répertoires qui
95 doit être créée.</p>
96
97 <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
98 références arrières <code>%1</code>, <code>%2</code>, etc..., alors que
99 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
100 références arrières <code>$1</code>, <code>$2</code>, etc...</p>
101
102 <p>
103 Comme c'est le cas pour de nombreuses techniques discutées dans ce
104 document, mod_rewrite n'est vraiment pas la meilleure méthode pour
105 accomplir cette tâche. Vous devez plutôt vous tourner vers
106 <code class="module"><a href="../mod/mod_vhost_alias.html">mod_vhost_alias</a></code>, car ce dernier sera bien plus à même
107 de gérer tout ce qui est au delà du domaine des fichiers statiques,
108 comme les contenus dynamiques et la résolution des alias.
109 </p>
110     </dd>
111   </dl>
112
113 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
114 <div class="section">
115 <h2><a name="simple.rewrite" id="simple.rewrite">Configuration dynamique de serveurs
116 virtuels via <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code></a></h2>
117
118     <p>Cet extrait du fichier <code>httpd.conf</code> permet d'obtenir
119     le même résultat que <a href="#per-hostname">le premier exemple</a>.
120     La première moitié est très similaire à la partie correspondante
121     ci-dessus, excepté quelques modifications requises à des fins de
122     compatibilité ascendante et pour faire en sorte que la partie
123     <code>mod_rewrite</code> fonctionne correctement ; la seconde moitié
124     configure <code>mod_rewrite</code> pour effectuer le travail
125     proprement dit.</p>
126
127     <p>Comme <code>mod_rewrite</code> s'exécute avant tout autre module
128     de traduction d'URI (comme <code>mod_alias</code>), il faut lui
129     ordonner explicitement d'ignorer toute URL susceptible d'être
130     traitée par ces autres modules. Et comme ces règles auraient sinon
131     court-circuité toute directive <code>ScriptAlias</code>, nous devons
132     faire en sorte que <code>mod_rewrite</code> déclare explicitement
133     ces correspondances.</p>
134
135 <pre class="prettyprint lang-config"># extrait le nom de serveur de l'en-tête Host:
136 UseCanonicalName Off
137
138 # journaux dissociables
139 LogFormat "%{Host}i %h %l %u %t \"%r\" %s %b" vcommon
140 CustomLog "logs/access_log" vcommon
141
142 &lt;Directory "/www/hosts"&gt;
143     # ExecCGI est nécessaire ici car on ne peut pas forcer l'exécution
144     # des CGI à la manière de ScriptAlias
145     Options FollowSymLinks ExecCGI
146 &lt;/Directory&gt;
147
148 RewriteEngine On
149
150 # un nom de serveur extrait d'un en-tête Host: peut être dans n'importe
151 # quelle casse
152 RewriteMap  lowercase  int:tolower
153
154 ## on s'occupe tout d'abord des documents normaux :<br />
155 # permet à Alias "/icons/" de fonctionner - répéter pour les autres
156 RewriteCond  "%{REQUEST_URI}"  "!^/icons/"
157 # permet aux CGIs de fonctionner
158 RewriteCond  "%{REQUEST_URI}"  "!^/cgi-bin/"
159 # le coeur du traitement
160 RewriteRule  "^/(.*)$"  "/www/hosts/${lowercase:%{SERVER_NAME}}/docs/$1"
161
162 ## on s'occupe maintenant des CGIs - on doit forcer l'utilisation d'un
163 # gestionnaire
164 RewriteCond  "%{REQUEST_URI}"  "^/cgi-bin/"
165 RewriteRule  "^/(.*)$" "/www/hosts/${lowercase:%{SERVER_NAME}}/cgi-bin/$1"  [H=cgi-script]</pre>
166
167
168 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
169 <div class="section">
170 <h2><a name="xtra-conf" id="xtra-conf">Utilisation d'un fichier de configuration
171 du serveur virtuel séparé</a></h2>
172
173     <p>Cette construction utilise des fonctionnalités plus avancées de
174     <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> pour effectuer la traduction depuis le
175     serveur virtuel vers la racine des documents, à partir d'un fichier
176     de configuration séparé. Elle est plus souple mais nécessite une
177     configuration plus compliquée.</p>
178
179     <p>Le fichier <code>vhost.map</code> devrait ressembler à ceci :</p>
180
181 <div class="example"><p><code>
182 www.client-1.example.com  /www/clients/1<br />
183 www.client-2.example.com  /www/clients/2<br />
184 # ...<br />
185 www.client-N.example.com  /www/clients/N<br />
186 </code></p></div>
187
188     <p>On doit ajouter à <code>httpd.conf</code> :</p>
189
190 <pre class="prettyprint lang-config">RewriteEngine on
191
192 RewriteMap   lowercase  int:tolower
193
194 # définit le fichier de correspondances
195 RewriteMap   vhost      "txt:/www/conf/vhost.map"
196
197 # on s'occupe des alias comme ci-dessus
198 RewriteCond  "%{REQUEST_URI}"               "!^/icons/"
199 RewriteCond  "%{REQUEST_URI}"               "!^/cgi-bin/"
200 RewriteCond  "${lowercase:%{SERVER_NAME}}"  "^(.+)$"
201 # on effectue ici la remise en correspondance à base de fichier
202 RewriteCond  "${vhost:%1}"                  "^(/.*)$"
203 RewriteRule  "^/(.*)$"                      "%1/docs/$1"
204
205 RewriteCond  "%{REQUEST_URI}"               "^/cgi-bin/"
206 RewriteCond  "${lowercase:%{SERVER_NAME}}"  "^(.+)$"
207 RewriteCond  "${vhost:%1}"                  "^(/.*)$"
208 RewriteRule  "^/cgi-bin/(.*)$"              "%1/cgi-bin/$1" [H=cgi-script]</pre>
209
210
211 </div></div>
212 <div class="bottomlang">
213 <p><span>Langues Disponibles: </span><a href="../en/rewrite/vhosts.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
214 <a href="../fr/rewrite/vhosts.html" title="Français">&nbsp;fr&nbsp;</a></p>
215 </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>
216 <script type="text/javascript"><!--//--><![CDATA[//><!--
217 var comments_shortname = 'httpd';
218 var comments_identifier = 'http://httpd.apache.org/docs/2.4/rewrite/vhosts.html';
219 (function(w, d) {
220     if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
221         d.write('<div id="comments_thread"><\/div>');
222         var s = d.createElement('script');
223         s.type = 'text/javascript';
224         s.async = true;
225         s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
226         (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
227     }
228     else { 
229         d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
230     }
231 })(window, document);
232 //--><!]]></script></div><div id="footer">
233 <p class="apache">Copyright 2017 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
234 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.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[//><!--
235 if (typeof(prettyPrint) !== 'undefined') {
236     prettyPrint();
237 }
238 //--><!]]></script>
239 </body></html>