urlmapping.html.fr revision ded301aa92e14cce77d47a9c4e77fd0b2f909a56
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
<title> Mise en correspondance des URLs avec le syst�me de fichiers - Serveur Apache HTTP</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>
<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="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="/glossary.html">Glossaire</a> | <a href="/sitemap.html">Plan du site</a></p>
<p class="apache">Serveur Apache HTTP Version 2.5</p>
<div id="path">
<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></div><div id="page-content"><div id="preamble"><h1> Mise en correspondance des URLs avec le syst�me de fichiers</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="/en/urlmapping.html" hreflang="en" rel="alternate" title="English"> en </a> |
</div>
<div class="outofdate">Cette traduction peut �tre p�rim�e. V�rifiez la version
anglaise pour les changements r�cents.</div>
<p>Ce document explique comment le serveur HTTP Apache utilise l'URL contenue dans une
requ�te pour d�terminer le noeud du syst�me de fichier � partir duquel le
fichier devra �tre servi.</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="/images/down.gif" /> <a href="#related">Modules et directives concern�s</a></li>
<li><img alt="" src="/images/down.gif" /> <a href="#documentroot">Racine des documents (DocumentRoot)</a></li>
l'arborescence DocumentRoot</a></li>
<li><img alt="" src="/images/down.gif" /> <a href="#proxy">Mandataire inverse (Reverse Proxy)</a></li>
<li><img alt="" src="/images/down.gif" /> <a href="#notfound">Fichier non trouv� (File Not Found)</a></li>
<li><img alt="" src="/images/down.gif" /> <a href="#other">Autres modules de mise en correspondance des
URLs</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="section">
<h2><a name="related" id="related">Modules et directives concern�s</a></h2>
<table class="related"><tr><th>Modules Apparent�s</th><th>Directives Apparent�es</th></tr><tr><td><ul><li><code class="module"><a href="/mod/mod_actions.html">mod_actions</a></code></li><li><code class="module"><a href="/mod/mod_alias.html">mod_alias</a></code></li><li><code class="module"><a href="/mod/mod_autoindex.html">mod_autoindex</a></code></li><li><code class="module"><a href="/mod/mod_dir.html">mod_dir</a></code></li><li><code class="module"><a href="/mod/mod_imagemap.html">mod_imagemap</a></code></li><li><code class="module"><a href="/mod/mod_negotiation.html">mod_negotiation</a></code></li><li><code class="module"><a href="/mod/mod_proxy.html">mod_proxy</a></code></li><li><code class="module"><a href="/mod/mod_rewrite.html">mod_rewrite</a></code></li><li><code class="module"><a href="/mod/mod_speling.html">mod_speling</a></code></li><li><code class="module"><a href="/mod/mod_userdir.html">mod_userdir</a></code></li><li><code class="module"><a href="/mod/mod_vhost_alias.html">mod_vhost_alias</a></code></li></ul></td><td><ul><li><code class="directive"><a href="/mod/mod_alias.html#alias">Alias</a></code></li><li><code class="directive"><a href="/mod/mod_alias.html#aliasmatch">AliasMatch</a></code></li><li><code class="directive"><a href="/mod/mod_speling.html#checkspelling">CheckSpelling</a></code></li><li><code class="directive"><a href="/mod/core.html#directoryindex">DirectoryIndex</a></code></li><li><code class="directive"><a href="/mod/core.html#documentroot">DocumentRoot</a></code></li><li><code class="directive"><a href="/mod/core.html#errordocument">ErrorDocument</a></code></li><li><code class="directive"><a href="/mod/core.html#options">Options</a></code></li><li><code class="directive"><a href="/mod/mod_proxy.html#proxypass">ProxyPass</a></code></li><li><code class="directive"><a href="/mod/mod_proxy.html#proxypassreverse">ProxyPassReverse</a></code></li><li><code class="directive"><a href="/mod/mod_proxy.html#proxypassreversecookiedomain">ProxyPassReverseCookieDomain</a></code></li><li><code class="directive"><a href="/mod/mod_proxy.html#proxypassreversecookiepath">ProxyPassReverseCookiePath</a></code></li><li><code class="directive"><a href="/mod/mod_alias.html#redirect">Redirect</a></code></li><li><code class="directive"><a href="/mod/mod_alias.html#redirectmatch">RedirectMatch</a></code></li><li><code class="directive"><a href="/mod/mod_rewrite.html#rewritecond">RewriteCond</a></code></li><li><code class="directive"><a href="/mod/mod_rewrite.html#rewriterule">RewriteRule</a></code></li><li><code class="directive"><a href="/mod/mod_alias.html#scriptalias">ScriptAlias</a></code></li><li><code class="directive"><a href="/mod/mod_alias.html#scriptaliasmatch">ScriptAliasMatch</a></code></li><li><code class="directive"><a href="/mod/mod_userdir.html#userdir">UserDir</a></code></li></ul></td></tr></table>
<div class="section">
<h2><a name="documentroot" id="documentroot">Racine des documents (DocumentRoot)</a></h2>
<p>La m�thode par d�faut de httpd pour d�terminer quel fichier servir pour
une requ�te donn�e, consiste � extraire le chemin du fichier de la requ�te
(la partie de l'URL qui suit le nom d'h�te et le port), puis de l'ajouter
� la fin de la valeur de la directive
<code class="directive"><a href="/mod/core.html#documentroot">DocumentRoot</a></code> d�finie dans vos fichiers
de configuration.
Ainsi, les fichiers et r�pertoires
situ�s en dessous de <code class="directive"><a href="/mod/core.html#documentroot">DocumentRoot</a></code>
constituent l'arborescence de base des documents qui seront visibles
depuis le web.</p>
<p>Par exemple, si la directive
<p>Si la requ�te concerne un r�pertoire (autrement dit un chemin se
terminant par un slash <code>/</code>), le nom du fichier qui sera
recherch� et servi depuis ce r�pertoire est d�fini via la directive
<code class="directive"><a href="/mod/core.html#directoryindex">DirectoryIndex</a></code>. Par exemple,
supposons que <code>DocumentRoot</code> ait �t� d�finie comme
pr�c�demment, et que vous ayez d�fini <code>DirectoryIndex</code>
comme suit :</p>
<p>Si httpd re�oit alors une requ�te pour
n'existe pas, il tentera de servir le fichier
<p>Si aucun de ces fichiers existe, httpd tentera de g�n�rer et
d'afficher un index du r�pertoire, � condition que
<code class="module"><a href="/mod/mod_autoindex.html">mod_autoindex</a></code> ait �t� charg� et configur� pour le
permettre.</p>
<p>httpd supporte aussi les <a href="vhosts/">H�tes virtuels</a>,
ce qui lui permet de traiter des requ�tes pour plusieurs h�tes.
Dans ce cas, un <code class="directive"><a href="/mod/core.html#documentroot">DocumentRoot</a></code>
diff�rent peut �tre d�fini pour chaque h�te virtuel;
les directives fournies par le module
<code class="module"><a href="/mod/mod_vhost_alias.html">mod_vhost_alias</a></code> peuvent aussi �tre utilis�es afin de
d�terminer dynamiquement le noeud appropri� du syst�me de fichiers
� partir duquel servir un contenu en fonction de l'adresse IP
ou du nom d'h�te.</p>
<p>La directive <code class="directive"><a href="/mod/core.html#documentroot">DocumentRoot</a></code> est
d�finie dans le fichier de configuration de votre serveur principal
<a href="vhosts/">H�te virtuel</a> suppl�mentaire que vous avez cr��.</p>
<div class="section">
<h2><a name="outside" id="outside">Fichiers situ�s en dehors de
l'arborescence DocumentRoot</a></h2>
<p>Il existe de nombreuses circonstances pour lesquelles il est n�cessaire
d'autoriser l'acc�s web � des portions du syst�me de fichiers qui ne se
trouvent pas dans l'arborescence <code class="directive"><a href="/mod/core.html#documentroot">DocumentRoot</a></code>. httpd propose de nombreuses
solutions pour r�aliser cela. Sur les syst�mes Unix, les liens
symboliques permettent de rattacher d'autres portions du syst�me de
fichiers au <code class="directive"><a href="/mod/core.html#documentroot">DocumentRoot</a></code>. Pour des raisons de s�curit�,
httpd ne suivra les liens symboliques que si les <code class="directive"><a href="/mod/core.html#options">Options</a></code> pour le r�pertoire concern� contiennent
<code>FollowSymLinks</code> ou <code>SymLinksIfOwnerMatch</code>.</p>
<p>Une autre m�thode consiste � utiliser la directive <code class="directive"><a href="/mod/mod_alias.html#alias">Alias</a></code> pour rattacher toute portion
du syst�me de fichiers � l'arborescence du site web. Par exemple, avec</p>
directive
fonctionne de la m�me mani�re, except� que tout contenu localis� dans le
chemin cible sera trait� comme un script <a class="glossarylink" href="/glossary.html#cgi" title="voir glossaire">CGI</a>.</p>
<p>Pour les situations qui n�cessitent plus de flexibilit�, vous disposez
des directives <code class="directive"><a href="/mod/mod_alias.html#aliasmatch">AliasMatch</a></code>
et <code class="directive"><a href="/mod/mod_alias.html#scriptaliasmatch">ScriptAliasMatch</a></code>
qui permettent des substitutions et comparaisons puissantes bas�es
sur les <a class="glossarylink" href="/glossary.html#regex" title="voir glossaire">expressions rationnelles</a>.
Par exemple,</p>
<pre class="prettyprint lang-config">
</pre>
<p>fera correspondre une requ�te du style
comme un script CGI.</p>
<div class="section">
<h2><a name="user" id="user">R�pertoires des utilisateurs</a></h2>
<p>Sur les syst�mes Unix, on peut traditionnellement faire r�f�rence
au r�pertoire personnel d'un <em>utilisateur</em> particulier � l'aide de
l'expression <code>~user/</code>.
�tend cette id�e au web en autorisant l'acc�s aux fichiers situ�s dans les
r�pertoires home des utilisateurs � l'aide d'URLs
comme dans ce qui suit :</p>
<p>Pour des raisons de s�curit�, il est d�conseill� de permettre un acc�s
direct � un r�pertoire home d'utilisateur depuis le web. A cet effet, la
sp�cifie un r�pertoire o� sont situ�s les fichiers accessibles depuis le web
dans le r�pertoire home de l'utilisateur.
Avec la configuration par d�faut
<code>Userdir public_html</code>, l'URL ci-dessus correspondra � un fichier
dont le chemin sera du style
<p>La directive <code>Userdir</code> met � votre disposition de nombreuses
sp�cifie pas la localisation du r�pertoire home.</p>
<p>Certains jugent le symbole "~" (dont le code sur le web est souvent
<code>%7e</code>) inappropri� et pr�f�rent utiliser une cha�ne de
caract�res diff�rente pour repr�senter les r�pertoires utilisateurs.
mod_userdir ne supporte pas cette fonctionnalit�. Cependant, si les
r�pertoires home des utilisateurs sont structur�s de mani�re rationnelle,
il est possible d'utiliser la directive
pour obtenir l'effet d�sir�. Par exemple, pour faire correspondre
<code>AliasMatch</code> suivante :</p>
<pre class="prettyprint lang-config">
AliasMatch ^/upages/([a-zA-Z0-9]+)(/(.*))?$ /home/$1/public_html/$3
</pre>
<div class="section">
<h2><a name="redirect" id="redirect">Redirection d'URL</a></h2>
<p>Les directives de configuration d�crites dans les sections pr�c�dentes
demandent � httpd d'extraire un contenu depuis un emplacement sp�cifique
du syst�me de fichiers
et de la retourner au client. Il est cependant parfois
souhaitable d'informer le
client que le contenu demand� est localis� � une URL diff�rente, et de
demander au client d'�laborer une nouvelle requ�te avec la nouvelle URL.
Ce processus se nomme <em>redirection</em> et est impl�ment� par la
Par exemple, si le contenu du r�pertoire <code>/foo/</code> sous
<code class="directive"><a href="/mod/core.html#documentroot">DocumentRoot</a></code> est d�plac� vers le
nouveau r�pertoire <code>/bar/</code>, vous pouvez demander aux clients
de le requ�rir � sa nouvelle localisation comme suit :</p>
<pre class="prettyprint lang-config">
Redirect permanent /foo/ http://www.example.com/bar/
</pre>
<p>Ceci aura pour effet de rediriger tout chemin d'URL commen�ant par
<code>/foo/</code> vers le m�me chemin d'URL sur le serveur
<code>/bar/</code>. Vous pouvez rediriger les clients non seulement sur le
serveur d'origine, mais aussi vers n'importe quel autre serveur.</p>
<p>httpd propose aussi la directive <code class="directive"><a href="/mod/mod_alias.html#redirectmatch">RedirectMatch</a></code> pour traiter les probl�mes
de r��criture d'une plus grande complexit�. Par exemple, afin de rediriger
les requ�tes pour la page d'accueil du site vers un site diff�rent, mais
laisser toutes les autres requ�tes inchang�es, utilisez la
configuration suivante :</p>
<pre class="prettyprint lang-config">
RedirectMatch permanent ^/$ http://www.example.com/startpage.html
</pre>
<p>De m�me, pour rediriger temporairement toutes les pages d'un site
vers une page particuli�re d'un autre site, utilisez ce qui suit :</p>
<pre class="prettyprint lang-config">
RedirectMatch temp .* http://othersite.example.com/startpage.html
</pre>
<div class="section">
<h2><a name="proxy" id="proxy">Mandataire inverse (Reverse Proxy)</a></h2>
<p>httpd vous permet aussi de rapatrier des documents distants
dans l'espace des URL du serveur local.
Cette technique est appel�e <em>mandataire inverse ou reverse
proxying</em> car le serveur web agit comme un serveur mandataire en
rapatriant les documents depuis un serveur distant puis les renvoyant
au client. Ceci diff�re d'un service de mandataire usuel (direct) car, pour le client,
les documents semblent appartenir au serveur mandataire inverse.</p>
<p>Dans l'exemple suivant, quand les clients demandent des documents situ�s
dans le r�pertoire
<code>/foo/</code>, le serveur rapatrie ces documents depuis le r�pertoire
et les renvoie au client comme s'ils appartenaient au serveur local.</p>
<pre class="prettyprint lang-config">
ProxyPass /foo/ http://internal.example.com/bar/<br />
ProxyPassReverse /foo/ http://internal.example.com/bar/<br />
ProxyPassReverseCookiePath /foo/ /bar/
</pre>
<p>La directive <code class="directive"><a href="/mod/mod_proxy.html#proxypass">ProxyPass</a></code> configure
le serveur pour rapatrier les documents appropri�s, alors que la directive
r��crit les redirections provenant de
r�pertoire appropri� sur le serveur local. De mani�re similaire, les directives
<code class="directive"><a href="/mod/mod_proxy.html#proxypassreversecookiedomain">ProxyPassReverseCookieDomain</a></code>
et <code class="directive"><a href="/mod/mod_proxy.html#proxypassreversecookiepath">ProxyPassReverseCookiePath</a></code>
r��crivent les cookies �labor�s par le serveur d'arri�re-plan.</p>
<p>Il est important de noter cependant, que les liens situ�s dans les documents
ne seront pas r��crits. Ainsi, tout lien absolu sur
du serveur mandataire et effectuer sa requ�te directement sur
d'utres contenus) situ�s dans la page au moment o� elle est envoy�e au
client en utilisant le module <code class="module"><a href="/mod/mod_substitute.html">mod_substitute</a></code>.</p>
<pre class="prettyprint lang-config">
</pre>
<p>Le module <code class="module"><a href="/mod/mod_proxy_html.html">mod_proxy_html</a></code> rend possible une r��criture plus
�labor�e des liens en HTML et XHTML. Il permet de cr�er des listes
d'URLs et de leurs r��critures, de fa�on � pouvoir g�rer des sc�narios
de r��criture complexes.</p>
<div class="section">
<h2><a name="rewrite" id="rewrite">Moteur de r��criture</a></h2>
<p>Le moteur de r��criture <code class="module"><a href="/mod/mod_rewrite.html">mod_rewrite</a></code> peut s'av�rer
utile lorsqu'une substitution plus puissante est n�cessaire.
Les directives fournies par ce module peuvent utiliser des caract�ristiques de la
requ�te comme le type de navigateur ou l'adresse IP source afin de d�cider
depuis o� servir le contenu. En outre, mod_rewrite peut utiliser des
fichiers ou programmes de bases de donn�es externes pour d�terminer comment
traiter une requ�te. Le moteur de r��criture peut effectuer les trois types
de mise en correspondance discut�s plus haut :
redirections internes (aliases), redirections externes, et services mandataires.
De nombreux exemples pratiques utilisant mod_rewrite sont discut�s dans la
<a href="rewrite/">documentation d�taill�e de mod_rewrite</a>.</p>
<div class="section">
<h2><a name="notfound" id="notfound">Fichier non trouv� (File Not Found)</a></h2>
<p>In�vitablement, appara�tront des URLs qui ne correspondront � aucun
fichier du syst�me de fichiers.
Ceci peut arriver pour de nombreuses raisons.
Il peut s'agir du d�placement de documents d'une
localisation vers une autre. Dans ce cas, le mieux est d'utiliser la
<a href="#redirect">redirection d'URL</a> pour informer les clients de la
nouvelle localisation de la ressource. De cette fa�on, vous �tes sur que
les anciens signets et liens continueront de fonctionner, m�me si la
ressource est d�plac�e.</p>
<p>Une autre cause fr�quente d'erreurs "File Not Found" est l'erreur de
frappe accidentelle dans les URLs, soit directement dans le navigateur,
soit dans les liens HTML. httpd propose le module
<code class="module"><a href="/mod/mod_speling.html">mod_speling</a></code> (sic) pour tenter de r�soudre ce probl�me.
Lorsque ce module est activ�, il intercepte les erreurs
"File Not Found" et recherche une ressource poss�dant un nom de fichier
similaire. Si un tel fichier est trouv�, mod_speling va envoyer une
redirection HTTP au client pour lui communiquer l'URL correcte.
Si plusieurs fichiers proches sont trouv�s, une liste des alternatives
possibles sera pr�sent�e au client.</p>
<p>mod_speling poss�de une fonctionnalit� particuli�rement utile :
il compare les noms de fichiers sans tenir compte de la casse.
Ceci peut aider les syst�mes o� les utilisateurs ne connaissent pas la
sensibilit� des URLs � la casse et bien s�r les syst�mes de fichiers unix.
Mais l'utilisation de mod_speling pour toute autre chose que la correction
occasionnelle d'URLs peut augmenter la charge du serveur, car chaque
requ�te "incorrecte" entra�ne une redirection d'URL et une nouvelle requ�te
de la part du client.</p>
<p><code class="module"><a href="/mod/mod_dir.html">mod_dir</a></code> fournit la directive <code class="directive"><a href="/mod/mod_dir.html#fallbackresource">FallbackResource</a></code> qui permet d'associer
des URIs virtuels � une ressource r�elle qui peut ainsi les servir.
Cette directive remplace avantageusement
<code class="module"><a href="/mod/mod_rewrite.html">mod_rewrite</a></code> lors de l'impl�mentation d'un
"contr�leur frontal".</p>
<p>Si toutes les tentatives pour localiser le contenu
�chouent, httpd
retourne une page d'erreur avec le code de statut HTTP 404
(file not found). L'apparence de cette page est contr�l�e � l'aide de la
et peut �tre personnalis�e de mani�re tr�s flexible comme discut� dans le
document
<div class="section">
<h2><a name="other" id="other">Autres modules de mise en correspondance des
URLs</a></h2>
<p>Les autres modules disponibles pour la mise en correspondance des
URLs sont :</p>
<ul>
<li><code class="module"><a href="/mod/mod_actions.html">mod_actions</a></code> - Met une URL en correspondance
avec un script CGI en fonction de la m�thode de la requ�te, ou du
type MIME de la ressource.</li>
<li><code class="module"><a href="/mod/mod_dir.html">mod_dir</a></code> - Permet une mise en correspondance
basique d'un slash terminal dans un fichier index comme
<li><code class="module"><a href="/mod/mod_imagemap.html">mod_imagemap</a></code> - Met en correspondance une
requ�te avec une URL en fonction de la zone d'une image int�gr�e �
un document HTML dans laquelle un utilisateur clique.</li>
<li><code class="module"><a href="/mod/mod_negotiation.html">mod_negotiation</a></code> - S�lectionne le document
appropri� en fonction de pr�f�rences du client telles que la langue
ou la compression du contenu.</li>
</ul>
</div></div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="/en/urlmapping.html" hreflang="en" rel="alternate" title="English"> en </a> |
</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>
var comments_shortname = 'httpd';
var comments_identifier = 'http://httpd.apache.org/docs/trunk/urlmapping.html';
(function(w, d) {
if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
d.write('<div id="comments_thread"><\/div>');
var s = d.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
(d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
}
else {
d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
}
})(window, document);
//--><!]]></script></div><div id="footer">
<p class="apache">Copyright 2013 The Apache Software Foundation.<br />Autoris� sous <a href="http://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="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[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
}
//--><!]]></script>
</body></html>