Linux cesa-www-main 6.1.0-49-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
Apache/2.4.68 (Debian)
Server IP : 10.218.0.2 & Your IP : 216.73.216.28
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
doc /
apache2-doc /
manual /
fr /
rewrite /
Delete
Unzip
Name
Size
Permission
Date
Action
access.html
15.84
KB
-rw-r--r--
2026-06-12 05:08
advanced.html
19.23
KB
-rw-r--r--
2026-06-12 05:08
avoid.html
18
KB
-rw-r--r--
2026-06-12 05:08
flags.html
58.01
KB
-rw-r--r--
2026-06-12 05:08
htaccess.html
5.62
KB
-rw-r--r--
2026-06-12 05:08
index.html
9.02
KB
-rw-r--r--
2026-06-12 05:08
intro.html
26.67
KB
-rw-r--r--
2026-06-12 05:08
proxy.html
8.11
KB
-rw-r--r--
2026-06-12 05:08
remapping.html
32.61
KB
-rw-r--r--
2026-06-12 05:08
rewritemap.html
30.94
KB
-rw-r--r--
2026-06-12 05:08
tech.html
15.89
KB
-rw-r--r--
2026-06-12 05:08
vhosts.html
14.34
KB
-rw-r--r--
2026-06-12 05:08
Save
Rename
<!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>Quand ne pas utiliser mod_rewrite - 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/index.html">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="./index.html"><img title="<-" alt="<-" src="../../images/left.gif"></a></div> <div id="path"> <a href="https://www.apache.org/">Apache</a> > <a href="https://httpd.apache.org/">Serveur HTTP</a> > <a href="https://httpd.apache.org/docs/">Documentation</a> > <a href="../index.html">Version 2.4</a> > <a href="./index.html">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>Quand ne pas utiliser mod_rewrite</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/rewrite/avoid.html" hreflang="en" rel="alternate" title="English"> en </a> | <a href="../../fr/rewrite/avoid.html" title="Français"> fr </a></p> </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 est un complément à la <a href="../mod/mod_rewrite.html">Documentation de référence</a> de <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>. Il décrit peut-être un des concepts les plus importants à propos de <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> - à savoir, quand doit-on éviter de l'utiliser.</p> <p><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> doit être considéré comme un dernier recours, lorsqu'aucune alternative n'est possible. Utiliser mod_rewrite lorsqu'il existe des alternatives plus simples conduit à des configurations confuses, fragiles, et difficiles à maintenir. La compréhension des autres alternatives disponibles est une étape très importante sur le chemin de la maîtrise de <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p> <p>Vous devez vous attacher à comprendre le fonctionnement des exemples, car la plupart d'entre eux ne fonctionneront pas sur votre système si vous vous contentez de les copier/coller dans vos fichiers de configuration.</p> <p>Le cas le plus courant dans lequel <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> est l'outil approprié est la situation où la seule solution envisageable nécessite l'accès aux fichiers de configuration du serveur, alors que cet accès ne vous est pas accordé. Certaines directives de configuration ne sont disponibles que dans le fichier de configuration du serveur. Si vous ne pouvez agir que sur les fichiers .htaccess, vous devrez donc vous tourner vers <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p> </div> <div id="quickview"><ul id="toc"><li><img alt="" src="../../images/down.gif"> <a href="#redirect">Redirection simple</a></li> <li><img alt="" src="../../images/down.gif"> <a href="#alias">Alias d'URL</a></li> <li><img alt="" src="../../images/down.gif"> <a href="#vhosts">Hébergement virtuel</a></li> <li><img alt="" src="../../images/down.gif"> <a href="#proxy">Mandat simple</a></li> <li><img alt="" src="../../images/down.gif"> <a href="#setenv">Test de variables d'environnement</a></li> </ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Documentation du module mod_rewrite</a></li><li><a href="intro.html">Introduction à mod_rewrite</a></li><li><a href="remapping.html">Redirection et remise en correspondance</a></li><li><a href="access.html">Contrôle d'accès</a></li><li><a href="vhosts.html">Serveurs virtuels</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></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="section"> <h2 id="redirect">Redirection simple <a title="Lien permanent" href="#redirect" class="permalink">¶</a></h2> <p><code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> fournit les directives <code class="directive"><a href="../mod/mod_alias.html#redirect">Redirect</a></code> et <code class="directive"><a href="../mod/mod_alias.html#redirectmatch">RedirectMatch</a></code> qui permettent de rediriger une URL vers une autre. Plutôt que d'utiliser la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> pour ce genre de redirection simple d'une URL ou d'une classe d'URLs vers une autre, on préfèrera l'utilisation de ces directives. En outre, avec <code>RedirectMatch</code>, vous pouvez inclure une expression rationnelle dans votre critère de redirection, ce qui vous permet de bénéficier de nombreux avantages de la directive <code>RewriteRule</code>.</p> <p>Une utilisation courante de la directive <code>RewriteRule</code> est la redirection de toute une classe d'URLs. Par exemple, toutes les URLs faisant référence au répertoire <code>/un</code> doivent être redirigées vers <code>http://un.example.com/</code>, ou toutes les requêtes <code>http</code> doivent être redirigées vers <code>https</code>.</p> <p>Pour ce faire, il est préférable d'utiliser la directive <code>Redirect</code>. Souvenez-vous que la directive <code>Redirect</code> conserve les informations relatives au chemin. En d'autres termes, la redirection d'une URL <code>/un</code> va aussi rediriger toutes les URLs de niveaux inférieurs comme <code>/un/deux.html</code> et <code>/un/trois/quatre.html</code>.</p> <p>Pour rediriger les URLs sous <code>/un</code> vers <code>http://un.example.com/</code>, utilisez cette définition :</p> <pre class="prettyprint lang-config">Redirect /one/ http://one.example.com/</pre> <p>Pour rediriger un nom d'hôte vers un autre nom d'hôte, par exemple <code>example.com</code> vers <code>www.example.com</code>, voir la méthode <a href="remapping.html#canonicalhost">Noms d'hôtes canoniques</a>.</p> <p>Pour rediriger les URLs <code>http</code> vers <code>https</code>, utilisez cette définition :</p> <pre class="prettyprint lang-config"><VirtualHost *:80> ServerName www.example.com Redirect "/" "https://www.example.com/" </VirtualHost> <VirtualHost *:443> ServerName www.example.com # ... insérer ici la configuration SSL </VirtualHost></pre> <p>L'utilisation de la directive <code>RewriteRule</code> pour accomplir cette tâche peut se justifier s'il existe d'autres directives <code>RewriteRule</code> dans la même portée. En effet, lorsque des directives <code>Redirect</code> et <code>RewriteRule</code> se trouvent dans la même portée, les directives <code>RewriteRule</code> sont exécutées en premier, sans tenir compte de leur ordre d'apparition dans le fichier de configuration.</p> <p>Dans le cas de la redirection <em>http-vers-https</em>, l'utilisation de règles <code>RewriteRule</code> se justifie si vous n'avez pas accès au fichier de configuration principal, et devez donc accomplir cette tâche au sein d'un fichier <code>.htaccess</code>.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="section"> <h2 id="alias">Alias d'URL <a title="Lien permanent" href="#alias" class="permalink">¶</a></h2> <p>La directive <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code> permet de mettre en correspondance un URI avec un répertoire, ce dernier étant en général situé en dehors de l'arborescence définie par la directive <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>. Bien qu'il soit possible d'effectuer cette mise en correspondance avec <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>, il est préférable d'utiliser la directive <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code> pour des raisons de simplicité et de performances.</p> <div class="example"><h3>Utilisation de la directive Alias</h3><pre class="prettyprint lang-config">Alias "/cats" "/var/www/virtualhosts/felines/htdocs"</pre> </div> <p> Pour effectuer cette mise en correspondance, <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> s'impose si vous n'avez pas accès aux fichiers de configuration du serveur. En effet, la directive Alias ne peut pas être utilisée dans un fichier <code>.htaccess</code>, mais seulement dans un contexte de serveur principal ou de serveur virtuel. </p> <p>En outre, vous pouvez arriver au même résultat avec les liens symboliques, pourvu que <code>Options FollowSymLinks</code> soit activé sur votre serveur.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="section"> <h2 id="vhosts">Hébergement virtuel <a title="Lien permanent" href="#vhosts" class="permalink">¶</a></h2> <p>Bien qu'il soit possible de gérer les <a href="vhosts.html">serveurs virtuels avec mod_rewrite</a>, il s'agit rarement de la bonne méthode. Il est pratiquement toujours préférable de créer des blocs <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> individuels. Dans l'éventualité où vous devez gérer un grand nombre de serveurs virtuels, vous devez vous tourner vers <code class="module"><a href="../mod/mod_vhost_alias.html">mod_vhost_alias</a></code> pour créer ces serveurs automatiquement.</p> <p>Il est aussi possible d'utiliser des modules comme <code class="module"><a href="../mod/mod_macro.html">mod_macro</a></code> pour créer un grand nombre de serveurs virtuels dynamiquement.</p> <p>L'utilisation de <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> pour la création de serveurs virtuels peut se révéler appropriée si votre service d'hébergement ne vous permet pas d'accéder aux fichiers de configuration du serveur, et que vous soyez par conséquent obligé de passer par les fichiers <code>.htaccess</code>.</p> <p>Voir le document <a href="vhosts.html">création de serveurs virtuels avec mod_rewrite</a> pour plus de détails sur la manière d'y parvenir si cela semble être tout de même la meilleure approche.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="section"> <h2 id="proxy">Mandat simple <a title="Lien permanent" href="#proxy" class="permalink">¶</a></h2> <p>La directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> fournit le drapeau <a href="flags.html#flag_p">[P]</a> qui permet de faire passer les URIs réécrits par <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>.</p> <pre class="prettyprint lang-config">RewriteRule "^/?images(.*)" "http://serveur-images.local/images$1" [P]</pre> <p>Cependant, dans les nombreux cas où aucune correspondance au modèle n'est vraiment nécessaire, comme dans l'exemple ci-dessus, il est préférable d'utiliser la directive <code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</a></code>. L'exemple précédent pourrait être remplacé par :</p> <pre class="prettyprint lang-config">ProxyPass "/images/" "http://serveur-images.local/images/"</pre> <p>Que vous utilisiez <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> ou <code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</a></code>, vous devrez dans tous les cas utiliser aussi la directive <code class="directive"><a href="../mod/mod_proxy.html#proxypassreverse">ProxyPassReverse</a></code> pour intercepter les redirections en provenance du serveur d'arrière-plan :</p> <pre class="prettyprint lang-config">ProxyPassReverse "/images/" "http://serveur-images.local/images/"</pre> <p>Vous devrez cependant tout de même utiliser <code>RewriteRule</code> lorsque d'autres <code>RewriteRule</code>s se trouvent dans la même portée, car elles agissent en général avant les directives <code>ProxyPass</code>, et peuvent ainsi les court-circuiter.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="section"> <h2 id="setenv">Test de variables d'environnement <a title="Lien permanent" href="#setenv" class="permalink">¶</a></h2> <p><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> est souvent utilisé pour effectuer une action en fonction de la présence ou de l'absence d'une variable d'environnement particulière ou d'un en-tête de requête, ce qui peut être accompli de manière plus efficace via la directive <code class="directive"><a href="../mod/core.html#if"><If></a></code>.</p> <p>Considérons par exemple le scénario courant où la directive <code class="directive">RewriteRule</code> est utilisée pour forcer un nom d'hôte canonique, tel que <code>www.example.com</code> au lieu de <code>example.com</code>. Il est possible d'utiliser à la place la directive <code class="directive"><a href="../mod/core.html#if"><If></a></code> comme suit :</p> <pre class="prettyprint lang-config"><If "req('Host') != 'www.example.com'"> Redirect "/" "http://www.example.com" </If></pre> <p>On peut utiliser cette technique dans de nombreux scénarios courant pour remplacer <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> pour effectuer des actions en fonction d'en-têtes de requêtes ou de réponses, ou de variables d'environnement.</p> <p>Voir en particulier la <a href="../expr.html">documentation sur l'évaluation des expressions</a> pour une vue d'ensemble des types d'expressions que vous pouvez utiliser dans les sections <code class="directive"><a href="../mod/core.html#if"><If></a></code>, ainsi que dans certaines directives.</p> </div></div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../../en/rewrite/avoid.html" hreflang="en" rel="alternate" title="English"> en </a> | <a href="../../fr/rewrite/avoid.html" title="Français"> fr </a></p> </div><div id="footer"> <p class="apache">Copyright 2026 The Apache Software Foundation.<br>Autorisé sous <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> <p class="menu"><a href="../mod/index.html">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 = '☰'; 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>