<!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>Exemples d'utilisations de VirtualHost - 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 id="manual-page"><div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p>
<p class="apache">Serveur HTTP Apache Version 2.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="./">Serveurs virtuels</a></div><div id="page-content"><div id="preamble"><h1>Exemples d'utilisations de VirtualHost</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/vhosts/examples.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/vhosts/examples.html" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="../ja/vhosts/examples.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/vhosts/examples.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/vhosts/examples.html" hreflang="tr" rel="alternate" title="T&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div>


    <p>Le but de ce document est d'essayer de r&eacute;pondre aux questions 
    les plus r&eacute;pandues sur la configuration des <a href="index.html">serveurs virtuels</a>. 
    Les sc&eacute;narios pr&eacute;sent&eacute;s ici se rencontrent quand plusieurs 
    serveurs Webs doivent tourner sur une seule et m&ecirc;me machine au 
    moyen de serveurs virtuels <a href="name-based.html">par nom</a> 
    ou <a href="ip-based.html">par IP</a>.</p>

</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif"> <a href="#purename">Fonctionnement de plusieurs serveurs 
  virtuels par nom sur une seule adresse IP.</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#twoips">Serveurs virtuels par nom sur plus 
    d'une seule adresse IP.</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#intraextra">Servir le m&ecirc;me contenu sur des 
    adresses IP diff&eacute;rentes (telle qu'une adresse interne et une 
    externe).</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#port">Servir diff&eacute;rents sites sur diff&eacute;rents 
    ports.</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#ip">H&eacute;bergement virtuel bas&eacute; sur IP</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#ipport">H&eacute;bergements virtuels mixtes bas&eacute;s sur 
    les ports et sur les IP</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#mixed">H&eacute;bergements virtuels mixtes bas&eacute; sur 
    les noms et sur IP</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#proxy">Utilisation simultan&eacute;e de 
    <code>Virtual_host</code> et de mod_proxy</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#default">Utilisation de serveurs virtuels 
    <code>_default_</code></a></li>
<li><img alt="" src="../images/down.gif"> <a href="#migrate">Migration d'un serveur virtuel 
	par nom en un serveur virtuel par IP</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#serverpath">Utilisation de la directive 
    <code>ServerPath</code></a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="purename">Fonctionnement de plusieurs serveurs 
  virtuels par nom sur une seule adresse IP. <a title="Lien permanent" href="#purename" class="permalink">&para;</a></h2>

    <p>Votre serveur poss&egrave;de plusieurs noms d'h&ocirc;te qui correspondent &agrave; une seule
    adresse IP, et vous souhaitez des r&eacute;ponses diff&eacute;rentes si on demande
    <code>www.example.com</code> ou <code>www.example.org</code>.</p>

    <div class="note"><h3>Note&nbsp;:</h3><p>La configuration de serveurs virtuels 
    sous Apache ne provoque pas leur apparition magique dans la 
    configuration du DNS. Il <em>faut</em> que leurs noms soient 
    d&eacute;finis dans le DNS, et qu'ils y soient r&eacute;solus sur l'adresse IP 
    du serveur, faute de quoi personne ne pourra visiter votre site Web. 
    Il est possible d'ajouter des entr&eacute;es dans le fichier 
    <code>hosts</code> pour tests locaux, mais qui ne fonctionneront 
    que sur la machine poss&eacute;dant ces entr&eacute;es.</p>
    </div>

    <pre class="prettyprint lang-config"># Apache doit &eacute;couter sur le port 80
Listen 80
&lt;VirtualHost *:80&gt;
    DocumentRoot "/www/example1"
    ServerName www.example.com
  
    # Autres directives ici
&lt;/VirtualHost&gt;

&lt;VirtualHost *:80&gt;
    DocumentRoot "/www/example2"
    ServerName www.example.org

    # Autres directives ici
&lt;/VirtualHost&gt;</pre>

   

    <p>Les ast&eacute;risques correspondent &agrave; toutes les adresses, si bien que 
    le serveur principal ne r&eacute;pondra jamais &agrave; aucune requ&ecirc;te. Comme le
    serveur virtuel
    <code>ServerName www.example.com</code> se trouve en premier dans le fichier 
    de configuration, il a la plus grande priorit&eacute; et peut &ecirc;tre vu 
    comme serveur <cite>par d&eacute;faut</cite> ou <cite>primaire</cite>&nbsp;; 
    ce qui signifie que toute requ&ecirc;te re&ccedil;ue ne correspondant &agrave; aucune 
    des directives <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> sera servie par ce premier 
    <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>.</p>

    <p>La configuration ci-dessus correspond &agrave; ce que l'on souhaite pour
    la plupart des serveurs virtuels &agrave; base de nom. Il faudra cependant
    utiliser une configuration diff&eacute;rente si vous souhaitez servir un
    contenu diff&eacute;rent en fonction de l'adresse IP ou du port.</p>

    <div class="note">
            <h3>Note&nbsp;:</h3>

            <p>Vous pouvez remplacer <code>*</code> 
            par une adresse IP du syst&egrave;me. Le serveur virtuel concern&eacute;
	    ne sera alors s&eacute;lectionn&eacute; que pour les requ&ecirc;tes HTTP vers
	    cette adresse IP.</p>

           <p>En g&eacute;n&eacute;ral, il est commode d'utiliser <code>*</code> sur 
           les syst&egrave;mes dont l'adresse IP n'est pas constante - par 
           exemple, pour des serveurs dont l'adresse IP est attribu&eacute;e 
           dynamiquement par le FAI, et o&ugrave; le DNS est g&eacute;r&eacute; au moyen 
           d'un DNS dynamique quelconque. Comme <code>*</code> signifie 
           <cite>n'importe quelle adresse</cite>, cette configuration 
           fonctionne sans devoir &ecirc;tre modifi&eacute;e quand l'adresse IP du 
           syst&egrave;me est modifi&eacute;e.</p>
    </div>

    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="twoips">Serveurs virtuels par nom sur plus 
    d'une seule adresse IP. <a title="Lien permanent" href="#twoips" class="permalink">&para;</a></h2>

  	<div class="note">
          <h3>Note&nbsp;:</h3><p>Toutes les techniques pr&eacute;sent&eacute;es ici 
          peuvent &ecirc;tre &eacute;tendues &agrave; un plus grand nombre d'adresses IP.</p>
    </div>

    <p>Le serveur a deux adresses IP. Sur l'une 
    (<code>172.20.30.40</code>), le serveur "principal" 
    <code>server.example.com</code> doit r&eacute;pondre, et sur l'autre 
    (<code>172.20.30.50</code>), deux serveurs virtuels (ou plus) 
    r&eacute;pondront.</p>

    <pre class="prettyprint lang-config">Listen 80

# Serveur "principal" sur 172.20.30.40
ServerName server.example.com
DocumentRoot "/www/mainserver"

&lt;VirtualHost 172.20.30.50&gt;
    DocumentRoot "/www/example1"
    ServerName www.example.com
    
    # D'autres directives ici ...
&lt;/VirtualHost&gt;

&lt;VirtualHost 172.20.30.50&gt;
    DocumentRoot "/www/example2"
    ServerName www.example.org
    
    # D'autres directives ici ...
&lt;/VirtualHost&gt;</pre>


    <p>Toute requ&ecirc;te arrivant sur une autre adresse que 
    <code>172.20.30.50</code> sera servie par le serveur principal. 
    Les requ&ecirc;tes vers <code>172.20.30.50</code> avec un nom de serveur 
    inconnu, ou sans en-t&ecirc;te <code>Host:</code>, seront servies par 
    <code>www.example.com</code>.</p>

    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="intraextra">Servir le m&ecirc;me contenu sur des 
    adresses IP diff&eacute;rentes (telle qu'une adresse interne et une 
    externe). <a title="Lien permanent" href="#intraextra" class="permalink">&para;</a></h2>

    <p>La machine serveur dispose de deux adresses IP 
    (<code>192.168.1.1</code> et <code>172.20.30.40</code>). Cette 
    machine est plac&eacute;e &agrave; la fois sur le r&eacute;seau interne (l'Intranet) 
    et le r&eacute;seau externe (Internet). Sur Internet, le nom 
    <code>server.example.com</code> pointe vers l'adresse externe 
    (<code>172.20.30.40</code>), mais sur le r&eacute;seau interne, ce m&ecirc;me 
    nom pointe vers l'adresse interne (<code>192.168.1.1</code>).</p>

    <p>Le serveur peut &ecirc;tre configur&eacute; pour r&eacute;pondre de la m&ecirc;me mani&egrave;re 
    aux requ&ecirc;tes internes et externes, au moyen d'une seule section 
    <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>.</p>

    <pre class="prettyprint lang-config">&lt;VirtualHost 192.168.1.1 172.20.30.40&gt;
    DocumentRoot "/www/server1"
    ServerName server.example.com
    ServerAlias server
&lt;/VirtualHost&gt;</pre>


    <p>Ainsi, les requ&ecirc;tes en provenance de chacun des deux r&eacute;seaux 
    seront servies par le m&ecirc;me <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>.</p>

    <div class="note">
          <h3>Note&nbsp;:</h3><p>Sur le r&eacute;seau interne, il est possible 
          d'utiliser le nom raccourci <code>server</code> au lieu du nom 
          complet <code>server.example.com</code>.</p>

          <p>Notez &eacute;galement que dans l'exemple pr&eacute;c&eacute;dent, vous pouvez 
          remplacer la liste des adresses IP par des <code>*</code> afin 
          que le serveur r&eacute;ponde de la m&ecirc;me mani&egrave;re sur toutes ses 
          adresses.</p>
    </div>

    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="port">Servir diff&eacute;rents sites sur diff&eacute;rents 
    ports. <a title="Lien permanent" href="#port" class="permalink">&para;</a></h2>

    <p>Vous disposez de plusieurs domaines pointant sur la m&ecirc;me adresse 
    IP et vous voulez &eacute;galement servir de multiples ports. L'exemple
    suivant montre que la s&eacute;lection en fonction du nom intervient apr&egrave;s
    la s&eacute;lection de la meilleure correspondance du point de vue adresse
    IP/port.</p>

    <pre class="prettyprint lang-config">Listen 80
Listen 8080

&lt;VirtualHost 172.20.30.40:80&gt;
    ServerName www.example.com
    DocumentRoot "/www/domain-80"
&lt;/VirtualHost&gt;

&lt;VirtualHost 172.20.30.40:8080&gt;
    ServerName www.example.com
    DocumentRoot "/www/domain-8080"
&lt;/VirtualHost&gt;

&lt;VirtualHost 172.20.30.40:80&gt;
    ServerName www.example.org
    DocumentRoot "/www/otherdomain-80"
&lt;/VirtualHost&gt;

&lt;VirtualHost 172.20.30.40:8080&gt;
    ServerName www.example.org
    DocumentRoot "/www/otherdomain-8080"
&lt;/VirtualHost&gt;</pre>


	</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="ip">H&eacute;bergement virtuel bas&eacute; sur IP <a title="Lien permanent" href="#ip" class="permalink">&para;</a></h2>

    <p>Le serveur dispose de deux adresses IP (<code>172.20.30.40</code> 
    et <code>172.20.30.50</code>) correspondant respectivement aux noms 
    <code>www.example.com</code> et <code>www.example.org</code>.</p>

    <pre class="prettyprint lang-config">Listen 80

&lt;VirtualHost 172.20.30.40&gt;
    DocumentRoot "/www/example1"
    ServerName www.example.com
&lt;/VirtualHost&gt;

&lt;VirtualHost 172.20.30.50&gt;
    DocumentRoot "/www/example2"
    ServerName www.example.org
&lt;/VirtualHost&gt;</pre>


    <p>Les requ&ecirc;tes provenant d'adresses non sp&eacute;cifi&eacute;es dans l'une des 
    directives <code>&lt;VirtualHost&gt;</code> (comme pour 
    <code>localhost</code> par exemple) seront dirig&eacute;es vers le serveur 
    principal, s'il en existe un.</p>

	</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="ipport">H&eacute;bergements virtuels mixtes bas&eacute;s sur 
    les ports et sur les IP <a title="Lien permanent" href="#ipport" class="permalink">&para;</a></h2>

    <p>Le serveur dispose de deux adresses IP (<code>172.20.30.40</code> 
    et <code>172.20.30.50</code>) correspondant respectivement aux noms 
    <code>www.example.com</code> et <code>www.example.org</code>. 
    Pour chacun d'eux, nous voulons un h&eacute;bergement sur les ports 80 
    et 8080.</p>

    <pre class="prettyprint lang-config">Listen 172.20.30.40:80
Listen 172.20.30.40:8080
Listen 172.20.30.50:80
Listen 172.20.30.50:8080

&lt;VirtualHost 172.20.30.40:80&gt;
    DocumentRoot "/www/example1-80"
    ServerName www.example.com
&lt;/VirtualHost&gt;

&lt;VirtualHost 172.20.30.40:8080&gt;
    DocumentRoot "/www/example1-8080"
    ServerName www.example.com
&lt;/VirtualHost&gt;

&lt;VirtualHost 172.20.30.50:80&gt;
    DocumentRoot "/www/example2-80"
    ServerName www.example.org
&lt;/VirtualHost&gt;

&lt;VirtualHost 172.20.30.50:8080&gt;
    DocumentRoot "/www/example2-8080"
    ServerName www.example.org
&lt;/VirtualHost&gt;</pre>


	</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="mixed">H&eacute;bergements virtuels mixtes bas&eacute; sur 
    les noms et sur IP <a title="Lien permanent" href="#mixed" class="permalink">&para;</a></h2>

    <p>Toute adresse indiqu&eacute;e comme argument d'une section VirtualHost
    et n'apparaissant dans aucun autre serveur virtuel, fait de cette
    section un serveur virtuel s&eacute;lectionnable uniquement en fonction de
    son adresse IP.</p>

    <pre class="prettyprint lang-config">Listen 80
&lt;VirtualHost 172.20.30.40&gt;
    DocumentRoot "/www/example1"
    ServerName www.example.com
&lt;/VirtualHost&gt;

&lt;VirtualHost 172.20.30.40&gt;
    DocumentRoot "/www/example2"
    ServerName www.example.org
&lt;/VirtualHost&gt;

&lt;VirtualHost 172.20.30.40&gt;
    DocumentRoot "/www/example3"
    ServerName www.example.net
&lt;/VirtualHost&gt;

# IP-based
&lt;VirtualHost 172.20.30.50&gt;
    DocumentRoot "/www/example4"
    ServerName www.example.edu
&lt;/VirtualHost&gt;

&lt;VirtualHost 172.20.30.60&gt;
    DocumentRoot "/www/example5"
    ServerName www.example.gov
&lt;/VirtualHost&gt;</pre>


	</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="proxy">Utilisation simultan&eacute;e de 
    <code>Virtual_host</code> et de mod_proxy <a title="Lien permanent" href="#proxy" class="permalink">&para;</a></h2>

    <p>L'exemple suivant montre comment une machine peut mandater 
    un serveur virtuel fonctionnant sur le serveur d'une autre machine. 
    Dans cet exemple, un serveur virtuel de m&ecirc;me nom est configur&eacute; sur 
    une machine &agrave; l'adresse <code>192.168.111.2</code>. La directive 
    <code class="directive"><a href="../mod/mod_proxy.html#proxypreservehost">ProxyPreserveHost On</a></code> est
    employ&eacute;e pour permette au nom de domaine d'&ecirc;tre pr&eacute;serv&eacute; lors du 
    transfert, au cas o&ugrave; plusieurs noms de domaines cohabitent sur 
    une m&ecirc;me machine.</p>

    <pre class="prettyprint lang-config">&lt;VirtualHost *:*&gt;
    ProxyPreserveHost On
    ProxyPass        "/" "http://192.168.111.2/"
    ProxyPassReverse "/" "http://192.168.111.2/"
    ServerName hostname.example.com
&lt;/VirtualHost&gt;</pre>


    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="default">Utilisation de serveurs virtuels 
    <code>_default_</code> <a title="Lien permanent" href="#default" class="permalink">&para;</a></h2>

    <h3 id="defaultallports">Serveurs virtuels 
    <code>_default_</code> pour tous les ports</h3>

    <p>Exemple de capture de <em>toutes</em> les requ&ecirc;tes &eacute;manant 
    d'adresses IP ou de ports non connus, <em>c'est-&agrave;-dire</em>, d'un 
    couple adresse/port non trait&eacute; par aucun autre serveur virtuel.</p>

    <pre class="prettyprint lang-config">&lt;VirtualHost _default_:*&gt;
    DocumentRoot "/www/default"
&lt;/VirtualHost&gt;</pre>


    <p>L'utilisation d'un tel serveur virtuel avec un joker pour le 
    port emp&ecirc;che de mani&egrave;re efficace qu'une requ&ecirc;te n'atteigne le 
    serveur principal.</p>

    <p>Un serveur virtuel par d&eacute;faut ne servira jamais une requ&ecirc;te 
    qui est envoy&eacute;e vers un couple adresse/port utilis&eacute;e par un 
    serveur virtuel par nom. Si la requ&ecirc;te contient un en-t&ecirc;te 
    <code>Host:</code> inconnu, ou si celui-ci est absent, elle 
    sera toujours servie par le serveur virtuel primaire par nom 
    (celui correspondant &agrave; ce couple adresse/port trouv&eacute; en premier 
    dans le fichier de configuration).</p>

    <p>Vous pouvez utiliser une directive 
    <code class="directive"><a href="../mod/mod_alias.html#aliasmatch">AliasMatch</a></code> ou 
    <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> afin de 
    r&eacute;&eacute;crire une requ&ecirc;te pour une unique page d'information (ou pour 
    un script).</p>
    

    <h3 id="defaultdifferentports">Serveurs virtuels 
    <code>_default_</code> pour des ports diff&eacute;rents</h3>

    <p>La configuration est similaire &agrave; l'exemple pr&eacute;c&eacute;dent, mais 
    le serveur &eacute;coute sur plusieurs ports et un second serveur virtuel 
    <code>_default_</code> pour le port 80 est ajout&eacute;.</p>

    <pre class="prettyprint lang-config">&lt;VirtualHost _default_:80&gt;
    DocumentRoot "/www/default80"
    # ...
&lt;/VirtualHost&gt;

&lt;VirtualHost _default_:*&gt;
    DocumentRoot "/www/default"
    # ...
&lt;/VirtualHost&gt;</pre>


    <p>Le serveur virtuel par d&eacute;faut d&eacute;fini pour le port 80 (il doit 
    imp&eacute;rativement &ecirc;tre plac&eacute; avant un autre serveur virtuel par 
    d&eacute;faut traitant tous les ports gr&acirc;ce au joker *) capture toutes 
    les requ&ecirc;tes envoy&eacute;es sur une adresse IP non sp&eacute;cifi&eacute;e. Le 
    serveur principal n'est jamais utilis&eacute; pour servir une requ&ecirc;te.</p>
    

    <h3 id="defaultoneport">Serveurs virtuels 
    <code>_default_</code> pour un seul port</h3>

    <p>Nous voulons cr&eacute;er un serveur virtuel par d&eacute;faut seulement 
    pour le port 80.</p>

    <pre class="prettyprint lang-config">&lt;VirtualHost _default_:80&gt;
    DocumentRoot "/www/default"
...
&lt;/VirtualHost&gt;</pre>


    <p>Une requ&ecirc;te vers une adresse non sp&eacute;cifi&eacute;e sur le port 80 
    sera servie par le serveur virtuel par d&eacute;faut, et toute autre 
    requ&ecirc;te vers une adresse et un port non sp&eacute;cifi&eacute;s sera servie 
    par le serveur principal.</p>

    <p>L'utilisation du caract&egrave;re g&eacute;n&eacute;rique <code>*</code> dans la
    d&eacute;claration d'un serveur virtuel l'emporte sur
    <code>_default_</code>.</p>
    

	</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="migrate">Migration d'un serveur virtuel 
	par nom en un serveur virtuel par IP <a title="Lien permanent" href="#migrate" class="permalink">&para;</a></h2>

    <p>Le serveur virtuel par nom avec le nom de domaine 
    <code>www.example.org</code> (de notre <a href="#name">exemple 
    par nom</a>) devrait obtenir sa propre adresse IP. Pendant la 
    phase de migration, il est possible d'&eacute;viter les probl&egrave;mes avec 
    les noms de serveurs et autres serveurs mandataires qui m&eacute;morisent 
    les vielles adresses IP pour les serveurs virtuels par nom.<br>
    La solution est simple, car il suffit d'ajouter la nouvelle 
    adresse IP (<code>172.20.30.50</code>) dans la directive 
    <code>VirtualHost</code>.</p>

    <pre class="prettyprint lang-config">Listen 80
ServerName www.example.com
DocumentRoot "/www/example1"

&lt;VirtualHost 172.20.30.40 172.20.30.50&gt;
    DocumentRoot "/www/example2"
    ServerName www.example.org
    # ...
&lt;/VirtualHost&gt;

&lt;VirtualHost 172.20.30.40&gt;
    DocumentRoot "/www/example3"
    ServerName www.example.net
    ServerAlias *.example.net
    # ...
&lt;/VirtualHost&gt;</pre>


    <p>Le serveur virtuel peut maintenant &ecirc;tre joint par la nouvelle 
    adresse (comme un serveur virtuel par IP) et par l'ancienne 
    adresse (comme un serveur virtuel par nom).</p>

	</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="serverpath">Utilisation de la directive 
    <code>ServerPath</code> <a title="Lien permanent" href="#serverpath" class="permalink">&para;</a></h2>

    <p>Dans le cas o&ugrave; vous disposez de deux serveurs virtuels par nom, 
    le client doit transmettre un en-t&ecirc;te <code>Host:</code> correct 
    pour d&eacute;terminer le serveur concern&eacute;. Les vieux clients HTTP/1.0 
    n'envoient pas un tel en-t&ecirc;te et Apache n'a aucun indice pour 
    conna&icirc;tre le serveur virtuel devant &ecirc;tre joint (il sert la 
    requ&ecirc;te &agrave; partir d'un serveur virtuel primaire). Dans un soucis 
    de pr&eacute;server la compatibilit&eacute; descendante, il suffit de cr&eacute;er 
    un serveur virtuel primaire charg&eacute; de retourner une page contenant 
    des liens dont les URLs auront un pr&eacute;fixe identifiant les serveurs 
    virtuels par nom.</p>

    <pre class="prettyprint lang-config">&lt;VirtualHost 172.20.30.40&gt;
    # serveur virtuel primaire
    DocumentRoot "/www/subdomain"
    RewriteEngine On
    RewriteRule "." "/www/subdomain/index.html"
    # ...
&lt;/VirtualHost&gt;

&lt;VirtualHost 172.20.30.40&gt;
    DocumentRoot "/www/subdomain/sub1"
    ServerName www.sub1.domain.tld
    ServerPath "/sub1/"
    RewriteEngine On
    RewriteRule "^(/sub1/.*)" "/www/subdomain$1
    # ...
&lt;/VirtualHost&gt;

&lt;VirtualHost 172.20.30.40&gt;
    DocumentRoot "/www/subdomain/sub2"
    ServerName www.sub2.domain.tld
    ServerPath "/sub2/"
    RewriteEngine On
    RewriteRule "^(/sub2/.*)" "/www/subdomain$1"
    # ...
&lt;/VirtualHost&gt;</pre>


    <p>&Agrave; cause de la directive 
    <code class="directive"><a href="../mod/core.html#serverpath">ServerPath</a></code>, une requ&ecirc;te sur 
    une URL <code>http://www.sub1.domain.tld/sub1/</code> est 
    <em>toujours</em> servie par le serveur sub1-vhost.<br>
    Une requ&ecirc;te sur une URL <code>http://www.sub1.domain.tld/</code> n'est 
    servie par le serveur sub1-vhost que si le client envoie un en-t&ecirc;te 
    <code>Host:</code> correct. Si aucun en-t&ecirc;te <code>Host:</code> 
    n'est transmis, le serveur primaire sera utilis&eacute;.</p>
    <p>Notez qu'il y a une singularit&eacute;&nbsp;: une requ&ecirc;te sur 
    <code>http://www.sub2.domain.tld/sub1/</code> est &eacute;galement servie 
    par le serveur sub1-vhost si le client n'envoie pas d'en-t&ecirc;te 
    <code>Host:</code>.</p>
    <p>Les directives <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> 
    sont employ&eacute;es pour s'assurer que le client qui envoie un en-t&ecirc;te 
    <code>Host:</code> correct puisse utiliser d'autres variantes d'URLs, 
    <em>c'est-&agrave;-dire</em> avec ou sans pr&eacute;fixe d'URL.</p>

	</div></div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/vhosts/examples.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/vhosts/examples.html" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="../ja/vhosts/examples.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/vhosts/examples.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/vhosts/examples.html" hreflang="tr" rel="alternate" title="T&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2026 The Apache Software Foundation.<br>Autoris&eacute; sous <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p></div><script><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
var langToggle = document.querySelector('.lang-toggle');
var topLang = document.querySelector('.toplang');
if (langToggle && topLang) {
    langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
}
var qv = document.getElementById('quickview');
if (qv) {
    document.body.appendChild(qv);
    var qvBtn = document.createElement('button');
    qvBtn.className = 'qv-toggle';
    qvBtn.setAttribute('aria-label', 'Toggle page navigation');
    qvBtn.innerHTML = '&#9776;';
    document.body.appendChild(qvBtn);
    qvBtn.addEventListener('click', function() {
        var isOpen = qv.classList.toggle('open');
        if (isOpen) {
            qv.style.top = window.scrollY + 10 + 'px';
        }
    });
    window.addEventListener('scroll', function() { qv.classList.remove('open'); });
}
//--><!]]></script>
</body></html>