<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1301578:1309551 (outdated) -->
+<!-- English Revision : 1309551 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<override>FileInfo</override>
<usage>
- <p>La directive <directive>RewriteBase</directive> définit
- explicitement le chemin URL de base (et non le chemin du
- répertoire dans le système de fichiers !) pour les réécritures dans un contexte
- de répertoire dont le résultat est la substitution d'un
- chemin relatif. Lorsque vous utilisez une directive <directive
- module="mod_rewrite">RewriteRule</directive> dans un fichier
- <code>.htaccess</code>, <module>mod_rewrite</module> enlève le
- préfixe de répertoire local avant d'effectuer le traitement, puis
- réécrit ce qui reste de l'URL. Lorsque la réécriture est terminée,
- <module>mod_rewrite</module> ajoute automatiquement le préfixe de
- répertoire local (ou la valeur de la directive
- <directive>RewriteBase</directive> si cette dernière est définie)
- à la chaîne de substitution avant de la remettre à disposition du
- serveur, comme s'il s'agissait de l'URL d'origine.</p>
-
- <p>Cette directive est <em>requise</em> pour les réécritures
- dans un contexte de répertoire défini via la directive
- <directive module="mod_alias">Alias</directive> lorsque la
- substitution utilise un chemin relatif.</p>
-
- <p>Si votre chemin URL n'existe pas réellement dans le système de
- fichiers, ou ne trouve pas directement sous le répertoire défini
- par la directive <directive
- module="core">DocumentRoot</directive>, vous devez utiliser la
- directive <directive>RewriteBase</directive> dans chaque fichier
- <code>.htaccess</code> où vous voulez utiliser des directives <directive
- module="mod_rewrite">RewriteRule</directive>.</p>
-
- <p>L'exemple ci-dessous montre comment faire correspondre
- http://example.com/mon-appli/index.html à
- /home/www/exemple/nouveau_site.html dans un fichier
- <code>.htaccess</code>. On suppose que le contenu disponible à
- http://example.com/ se situe sur le disque à
- /home/www/exemple/.</p>
+ <p>La directive <directive>RewriteBase</directive> permet de
+ spécifier le préfixe d'URL à utiliser dans un contexte de
+ répertoire (htaccess) pour les directives
+ <directive>RewriteRule</directive> qui réécrivent vers un chemin
+ relatif.</p>
+ <p>Cette directive est <em>obligatoire</em> si vous utilisez un
+ chemin relatif dans une substitution, et dans un contexte de
+ répertoire (htaccess), sauf si au moins une de ces conditions est
+ vérifiée :</p>
+ <ul>
+ <li>La requête initiale, ainsi que la substitution, sont dans
+ la <directive module="core">DocumentRoot</directive> (c'est à
+ dire que pour y accéder, il n'est pas nécessaire d'utiliser
+ une directive telle qu'<directive
+ module="mod_alias">Alias</directive>).</li>
+ <li>Le chemin du système de fichiers vers le répertoire
+ contenant la <directive>RewriteRule</directive>, suffixé par
+ la substitution relative est aussi valide en tant qu'URL sur
+ le serveur (ce qui est rare).</li>
+ </ul>
+
+<p>Dans l'exemple ci-dessous, la directive
+<directive>RewriteBase</directive> est nécessaire afin d'éviter une
+réécriture en http://example.com/opt/myapp-1.2.3/welcome.html car la
+ressource n'était pas relative à la racine des documents. Cette erreur
+de configuration aurait conduit le serveur à rechercher un répertoire
+"opt" à la racine des documents.</p>
<example>
<pre>
+DocumentRoot /var/www/example.com
+Alias /myapp /opt/myapp-1.2.3
+<Directory /opt/myapp-1.2.3>
RewriteEngine On
-# Le chemin URL utilisé pour arriver dans ce contexte, et non le chemin
-# du système de fichiers
-RewriteBase /mon-appli/
-RewriteRule ^index\.html$ nouveau_site.html
+RewriteBase /myapp/
+RewriteRule ^index\.html$ welcome.html
+</Directory>
</pre>
</example>
-
</usage>
</directivesynopsis>