1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402
|
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
<!--
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 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" type="text/javascript">
</script>
<link href="./images/favicon.ico" rel="shortcut icon" /></head>
<body id="manual-page"><div id="page-header">
<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>
<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="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.4</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> |
<a href="./fr/urlmapping.html" title="Français"> fr </a> |
<a href="./ja/urlmapping.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="./ko/urlmapping.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="./tr/urlmapping.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
</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"><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="#related">Modules et directives concernés</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#documentroot">Racine des documents (DocumentRoot)</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#outside">Fichiers situés en dehors de
l'arborescence DocumentRoot</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#user">Répertoires des utilisateurs</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#redirect">Redirection d'URL</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="#rewrite">Moteur de réécriture</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><h3>Voir aussi</h3><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></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/mod_dir.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><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<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
<code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code> contient
<code>/var/www/html</code>, une requête pour
<code>http://www.example.com/fish/guppies.html</code> retournera le
fichier <code>/var/www/html/fish/guppies.html</code> au client.</p>
<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/mod_dir.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>
<div class="example"><p><code>DirectoryIndex index.html index.php</code></p></div>
<p>Si httpd reçoit alors une requête pour
<code>http://www.example.com/fish/</code>, il tentera de servir le
fichier <code>/var/www/html/fish/index.html</code>. Si ce fichier
n'existe pas, il tentera de servir le fichier
<code>/var/www/html/fish/index.php</code>.</p>
<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
(<code>httpd.conf</code>), mais peut aussi être redéfinie pour chaque
<a href="vhosts/">Hôte virtuel</a> supplémentaire que vous avez créé.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<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>
<pre class="prettyprint lang-config">Alias "/docs" "/var/web"</pre>
<p>l'URL <code>http://www.example.com/docs/dir/file.html</code>
correspondra au fichier <code>/var/web/dir/file.html</code>. La
directive
<code class="directive"><a href="./mod/mod_alias.html#scriptalias">ScriptAlias</a></code>
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">ScriptAliasMatch "^/~([a-zA-Z0-9]+)/cgi-bin/(.+)" "/home/$1/cgi-bin/$2"</pre>
<p>fera correspondre une requête du style
<code>http://example.com/~user/cgi-bin/script.cgi</code> au chemin
<code>/home/user/cgi-bin/script.cgi</code>, et traitera le fichier résultant
comme un script CGI.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<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>.
Le module <code class="module"><a href="./mod/mod_userdir.html">mod_userdir</a></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>
<div class="example"><p><code>http://www.example.com/~user/file.html</code></p></div>
<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
directive <code class="directive"><a href="./mod/mod_userdir.html#userdir">UserDir</a></code>
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
<code>/home/user/public_html/file.html</code> où
<code>/home/user/</code> est le répertoire home de l'utilisateur tel qu'il
est défini dans <code>/etc/passwd</code>.</p>
<p>La directive <code>Userdir</code> met à votre disposition de nombreuses
formes différentes pour les systèmes où <code>/etc/passwd</code> ne
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
<code class="directive"><a href="./mod/mod_alias.html#aliasmatch">AliasMatch</a></code>
pour obtenir l'effet désiré. Par exemple, pour faire correspondre
<code>http://www.example.com/upages/user/file.html</code> à
<code>/home/user/public_html/file.html</code>, utilisez la directive
<code>AliasMatch</code> suivante :</p>
<pre class="prettyprint lang-config">AliasMatch "^/upages/([a-zA-Z0-9]+)(/(.*))?$" "/home/$1/public_html/$3"</pre>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<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
directive <code class="directive"><a href="./mod/mod_alias.html#redirect">Redirect</a></code>.
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>www.example.com</code> en remplaçant <code>/foo/</code> par
<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><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<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
<code>/bar/</code> sur <code>internal.example.com</code>
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/"
ProxyPassReverse "/foo/" "http://internal.example.com/bar/"
ProxyPassReverseCookieDomain internal.example.com public.example.com
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
<code class="directive"><a href="./mod/mod_proxy.html#proxypassreverse">ProxyPassReverse</a></code>
réécrit les redirections provenant de
<code>internal.example.com</code> de telle manière qu'elles ciblent le
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
<code>internal.example.com</code> fera décrocher le client
du serveur mandataire et effectuer sa requête directement sur
<code>internal.example.com</code>. Vous pouvez modifier ces liens (et
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">Substitute "s/internal\.example\.com/www.example.com/i"</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><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<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><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<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
directive <code class="directive"><a href="./mod/core.html#errordocument">ErrorDocument</a></code>
et peut être personnalisée de manière très flexible comme discuté dans le
document
<a href="custom-error.html">Réponses personnalisées aux erreurs</a>.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<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
<code>index.html</code>.</li>
<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> |
<a href="./fr/urlmapping.html" title="Français"> fr </a> |
<a href="./ja/urlmapping.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="./ko/urlmapping.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="./tr/urlmapping.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
</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 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 Libera.chat, or sent to our <a href="https://httpd.apache.org/lists.html">mailing lists</a>.</div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
var comments_identifier = 'http://httpd.apache.org/docs/2.4/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 2024 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/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[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
}
//--><!]]></script>
</body></html>
|