<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1300893:1334011 (outdated) -->
+<!-- English Revision : 1334011 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<program>htcacheclean</program> permet de lister et de supprimer les
URLs mises en cache, et de maintenir le cache en deçà de
certaines limites de taille et de nombre d'inodes.</dd>
+ <dt><module>mod_cache_socache</module></dt>
+ <dd>Implémente un gestionnaire de stockage basé sur un cache d'objets
+ partagés. Les en-têtes et corps sont stockés ensemble sous une seule
+ clé basée sur l'URL de la réponse mise en cache. Des réponses à
+ contenus multiples négociés peuvent être stockées simultanément, mais
+ ce module ne supporte pas la mise en cache de contenus partiels.</dd>
</dl>
<p>Pour de plus amples détails, une description, et des exemples,
<section id="related"><title>Modules apparentés et directives</title>
<related>
<modulelist>
- <module>mod_cache_disk</module>
+ <module>mod_cache_socache</module>
</modulelist>
<directivelist>
<directive module="mod_cache_disk">CacheRoot</directive>
<directive module="mod_cache_disk">CacheDirLength</directive>
<directive module="mod_cache_disk">CacheMinFileSize</directive>
<directive module="mod_cache_disk">CacheMaxFileSize</directive>
+ <directive module="mod_cache_socache">CacheSocache</directive>
+ <directive module="mod_cache_socache">CacheSocacheMaxTime</directive>
+ <directive module="mod_cache_socache">CacheSocacheMinTime</directive>
+ <directive module="mod_cache_socache">CacheSocacheMaxSize</directive>
+ <directive module="mod_cache_socache">CacheSocacheReadSize</directive>
+ <directive module="mod_cache_socache">CacheSocacheReadTime</directive>
</directivelist>
</related>
</section>
<section id="sampleconf"><title>Exemple de configuration</title>
<example><title>Extrait de httpd.conf</title>
- #<br />
- # Exemple de configuration du cache<br />
- #<br />
- LoadModule cache_module modules/mod_cache.so<br />
- <br />
- <IfModule mod_cache.c><br />
- <indent>
- LoadModule disk_cache_module modules/mod_cache_disk.so<br />
- <IfModule mod_cache_disk.c><br />
- <indent>
- CacheRoot c:/cacheroot<br />
- CacheEnable disk /<br />
- CacheDirLevels 5<br />
- CacheDirLength 3<br />
- </indent>
- </IfModule> <br />
- <br />
- # Lorsqu'on sert de mandataire, on ne met pas en cache la liste
- # des mises à jour de sécurité<br />
- CacheDisable http://security.update.server/update-list/<br />
- </indent>
- </IfModule>
+ <highlight language="config">
+#
+# Exemple de configuration du cache
+#
+LoadModule cache_module modules/mod_cache.so
+<IfModule mod_cache.c>
+ LoadModule cache_disk_module modules/mod_cache_disk.so
+ <IfModule mod_cache_disk.c>
+ CacheRoot c:/cacheroot
+ CacheEnable disk /
+ CacheDirLevels 5
+ CacheDirLength 3
+ </IfModule>
+
+ # Lorsqu'on sert de mandataire, on ne met pas en cache la liste
+# des mises à jour de sécurité
+ CacheDisable http://security.update.server/update-list/
+</IfModule>
+ </highlight>
</example>
</section>
<section>
<title>Exemple de configuration</title>
<example><title>Activation du verrouillage du cache</title>
- #<br />
- # Active le verrouillage du cache<br />
- #<br />
- <IfModule mod_cache.c><br />
- <indent>
- CacheLock on<br />
- CacheLockPath /tmp/mod_cache-lock<br />
- CacheLockMaxAge 5<br />
- </indent>
- </IfModule>
+ <highlight language="config">
+#
+# Active le verrouillage du cache
+#
+<IfModule mod_cache.c>
+ CacheLock on
+ CacheLockPath /tmp/mod_cache-lock
+ CacheLockMaxAge 5
+</IfModule>
+ </highlight>
</example>
</section>
</section>
avant le filtre <strong>DEFLATE</strong> comme dans l'exemple suivant
:</p>
- <example>
- # Mise en cache du contenu avant la compression optionnelle<br />
- CacheQuickHandler off<br />
- AddOutputFilterByType CACHE;DEFLATE text/plain<br /><br />
- </example>
+ <highlight language="config">
+# Mise en cache du contenu avant la compression optionnelle
+CacheQuickHandler off
+AddOutputFilterByType CACHE;DEFLATE text/plain
+ </highlight>
<p>Une autre possibilité consiste à mettre en cache le contenu avant
l'ajout de contenu personnalisé via <module>mod_include</module> (ou
<module>mod_include</module> sont mis en cache avant d'être
interprétés :</p>
- <example>
- # Mise en cache du contenu avant l'intervention de mod_include et
- # mod_deflate<br />
- CacheQuickHandler off<br />
- AddOutputFilterByType CACHE;INCLUDES;DEFLATE text/html<br /><br />
- </example>
+ <highlight language="config">
+# Mise en cache du contenu avant l'intervention de mod_include et
+ # mod_deflate
+CacheQuickHandler off
+AddOutputFilterByType CACHE;INCLUDES;DEFLATE text/html
+ </highlight>
<p>Vous pouvez insérer le filtre <strong>CACHE</strong> en tout point
de la chaîne de filtrage. Dans l'exemple suivant, le contenu est mis
en cache après avoir été interprété par <module>mod_include</module>,
mais avant d'être traité par <module>mod_deflate</module> :</p>
- <example>
- # Mise en cache du contenu entre les interventions de mod_include et
- # mod_deflate<br />
- CacheQuickHandler off<br />
- AddOutputFilterByType INCLUDES;CACHE;DEFLATE text/html<br /><br />
- </example>
+ <highlight language="config">
+# Mise en cache du contenu entre les interventions de mod_include et
+ # mod_deflate
+CacheQuickHandler off
+AddOutputFilterByType INCLUDES;CACHE;DEFLATE text/html
+ </highlight>
<note type="warning"><title>Avertissement :</title>Si pour une raison
ou pour une autre, le point d'insertion du filtre
Cette information peut être journalisée via la directive <directive
module="mod_log_config">LogFormat</directive> comme suit :</p>
- <example>
+ <highlight language="config">
LogFormat "%{cache-status}e ..."
- </example>
+ </highlight>
<p>En fonction de la décision prise, l'information est aussi écrite
- dans l'environnement du sous-processus sous une des trois clés
+ dans l'environnement du sous-processus sous une des quatre clés
suivantes :</p>
<dl>
mis à jour avec succès, puis servi depuis le cache.</dd>
<dt>cache-miss</dt><dd>Le contenu n'était pas dans le cache et a été
servi directement depuis le serveur demandé.</dd>
+ <dt>cache-invalidate</dt><dd>L'entité du cache est devenue invalide
+ suite à une requête d'un type autre que GET ou HEAD.</dd>
</dl>
<p>Il est alors possible d'envisager une journalisation conditionnelle
du traitement des requêtes par rapport au cache comme dans l'exemple
suivant :</p>
- <example>
- CustomLog requetes-depuis-cache.log common env=cache-hit<br />
- CustomLog requetes-hors-cache.log common env=cache-miss<br />
- CustomLog requetes-avec-mise-a-jour-du-cache.log common env=cache-revalidate<br />
- </example>
+ <highlight language="config">
+CustomLog cached-requests.log common env=cache-hit
+CustomLog uncached-requests.log common env=cache-miss
+CustomLog revalidated-requests.log common env=cache-revalidate
+CustomLog invalidated-requests.log common env=cache-invalidate
+ </highlight>
<p>Pour les concepteurs de modules, une accroche (hook) nommée
<var>cache_status</var> est disponible et permet aux modules de
contenu considéré peut être mis en cache. Si <var>type de cache</var>
a pour valeur <code>disk</code>, <module>mod_cache</module>
utilisera le gestionnaire de stockage sur disque implémenté par
- <module>mod_cache_disk</module>.</p>
+ <module>mod_cache_disk</module>. Pour que <module>mod_cache</module>
+ utilise le gestionnaire de stockage basé sur le cache d'objets
+ partagés implémenté par <module>mod_cache_socache</module>,
+ spécifiez <code>socache</code> comme valeur du paramètre <var>type
+ de cache</var>.</p>
<p>Si les différentes directives <directive>CacheEnable</directive>
spécifient des URLs qui se recoupent (comme dans l'exemple
ci-dessous), tous les gestionnaires de stockage possibles seront
et des protocoles de mandat pour lesquels la mise en cache devra
être activée.</p>
- <example>
- # Mise en cache de contenu<br />
- <Location /foo><br />
- <indent>
- CacheEnable disk<br />
- </indent>
- </Location><br /><br />
- # Mise en cache via une expression rationnelle<br />
- <LocationMatch foo$><br />
- <indent>
- CacheEnable disk<br />
- </indent>
- </LocationMatch><br /><br />
- # Mise en cache des URLs mandatées<br />
- CacheEnable disk /<br /><br />
- # Mise en cache des URLs FTP mandatées<br />
- CacheEnable disk ftp://<br /><br />
- # Mise en cache des contenus situés dans www.example.org<br />
- CacheEnable disk http://www.example.org/<br />
- </example>
+ <highlight language="config">
+# Mise en cache de contenu
+<Location /foo>
+ CacheEnable disk
+</Location>
+
+# Mise en cache via une expression rationnelle
+<LocationMatch foo$>
+ CacheEnable disk
+</LocationMatch>
+
+# Mise en cache des URLs mandatées
+CacheEnable disk /
+
+# Mise en cache des URLs FTP mandatées
+CacheEnable disk ftp://
+
+# Mise en cache des contenus situés dans www.example.org
+CacheEnable disk http://www.example.org/
+ </highlight>
<p>Un nom d'hôte commençant par un caractère <strong>"*"</strong>
correspondra à tout nom d'hôte se terminant par le suffixe
<strong>"."</strong> correspondra à tout nom d'hôte contenant le
composant de nom de domaine qui suit ce caractère.</p>
- <example>
- # Correspond à www.example.org et fooexample.org<br />
- CacheEnable disk http://*example.org/<br />
- # Correspond à www.example.org, mais pas à fooexample.org<br />
- CacheEnable disk http://.example.org/<br />
- </example>
+ <highlight language="config">
+# Correspond à www.example.org et fooexample.org
+CacheEnable disk http://*example.org/
+# Correspond à www.example.org, mais pas à fooexample.org
+CacheEnable disk http://.example.org/
+ </highlight>
<p>Depuis la version 2.2.12, on peut définir la variable
d'environnement <code>no-cache</code> pour une définition plus fine
inférieurs.</p>
<example><title>Exemple</title>
+ <highlight language="config">
CacheDisable /fichiers_locaux
+ </highlight>
</example>
<p>Si la directive se trouve à l'intérieur d'une section <directive
par la section Location.</p>
<example><title>Exemple</title>
- <Location /foo><br />
- <indent>
- CacheDisable on<br />
- </indent>
- </Location><br />
+ <highlight language="config">
+<Location /foo>
+ CacheDisable on
+</Location>
+ </highlight>
</example>
<p>Avec les versions 2.2.12 et ultérieures, on peut définir la
sera pas à jour. L'utilisation de cette valeur maximale est forcée,
même si le document possède une date d'expiration.</p>
- <example>
+ <highlight language="config">
CacheMaxExpire 604800
- </example>
+ </highlight>
+
</usage>
</directivesynopsis>
que dans le cas où le document ne possède aucune date d'expiration
valide.</p>
- <example>
+ <highlight language="config">
CacheMinExpire 3600
- </example>
+ </highlight>
</usage>
</directivesynopsis>
<directive>CacheMaxExpire</directive> si cette dernière est
utilisée.</p>
- <example>
+ <highlight language="config">
CacheDefaultExpire 86400
- </example>
+ </highlight>
</usage>
</directivesynopsis>
d'expiration.
</p>
- <example>
+ <highlight language="config">
CacheIgnoreNoLastMod On
- </example>
+ </highlight>
</usage>
</directivesynopsis>
Les ressources qui requièrent une autorisation ne seront
<em>jamais</em> mises en cache.</p>
- <example>
+ <highlight language="config">
CacheIgnoreCacheControl On
- </example>
+ </highlight>
<note type="warning"><title>Avertissement :</title>
Cette directive permet de servir des ressources depuis le cache,
traitée comme si elle ne possèdait pas de chaîne de paramètres
lorsque cette directive est activée.</p>
- <example>
+ <highlight language="config">
CacheIgnoreQueryString On
- </example>
+ </highlight>
</usage>
</directivesynopsis>
directive <directive>CacheMaxExpire</directive>, c'est ce dernier
qui l'emporte.</p>
- <example>
+ <highlight language="config">
CacheLastModifiedFactor 0.5
- </example>
+ </highlight>
</usage>
</directivesynopsis>
<code>None</code>.</p>
<example><title>Exemple 1</title>
+ <highlight language="config">
CacheIgnoreHeaders Set-Cookie
+ </highlight>
</example>
<example><title>Exemple 2</title>
+ <highlight language="config">
CacheIgnoreHeaders None
+ </highlight>
</example>
<note type="warning"><title>Avertissement :</title>
ajouté à la liste.</p>
<example><title>Exemple 1</title>
+ <highlight language="config">
CacheIgnoreURLSessionIdentifiers jsessionid
+ </highlight>
</example>
<example><title>Exemple 2</title>
+ <highlight language="config">
CacheIgnoreURLSessionIdentifiers None
+ </highlight>
</example>
</usage>
de la part du serveur d'origine, et la réponse sera renvoyée à
partir du cache si la ressource d'arrière-plan n'a pas été modifiée.</p>
- <example>
+ <highlight language="config">
CacheStoreExpired On
- </example>
+ </highlight>
+
</usage>
</directivesynopsis>
nécessitant une autorisation ne sont <em>jamais</em> mises en
cache.</p>
- <example>
+
+ <highlight language="config">
CacheStorePrivate On
- </example>
+ </highlight>
+
<note type="warning"><title>Avertissement :</title>
Cette directive autorise la mise en cache même si le serveur
nécessitant une autorisation ne sont <em>jamais</em> mises en
cache.</p>
- <example>
+
+ <highlight language="config">
CacheStoreNoStore On
- </example>
+ </highlight>
+
<note type="warning"><title>Avertissement :</title>
Selon la RFC 2616, la valeur d'en-tête no-store est censée
tempêtes de requêtes dans le répertoire temp par défaut du système est
la suivante :</p>
- <example>
- # Active le verrouillage du cache<br />
- CacheLock on<br /><br />
- </example>
+ <highlight language="config">
+# Active le verrouillage du cache
+CacheLock on
+ </highlight>
</usage>
</directivesynopsis>
<default>CacheQuickHandler on</default>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>
- <compatibility>Disponible à partir de la version 2.3.3 du serveur HTTP
+ <compatibility>Disponible à partir de la version 2.3.3 du serveur HTTP
Apache</compatibility>
<usage>
traitement complet de la requête est nécessaire, comme par exemple
lorsque le contenu est soumis à autorisation.</p>
- <example>
- # Exécute le cache comme un gestionnaire normal<br />
- CacheQuickHandler off<br /><br />
- </example>
+ <highlight language="config">
+# Exécute le cache comme un gestionnaire normal
+CacheQuickHandler off
+ </highlight>
<p>Lorsque le gestionnaire rapide est désactivé, l'administrateur a
aussi la possibilité de choisir avec précision le point de la chaîne
de filtrage où la mise en cache sera effectuée, en utilisant le
filtre <strong>CACHE</strong>.</p>
- <example>
- # Mise en cache du contenu avant l'intervention de mod_include et
- # mod_deflate<br />
- CacheQuickHandler off<br />
- AddOutputFilterByType CACHE;INCLUDES;DEFLATE text/html<br /><br />
- </example>
+ <highlight language="config">
+# Mise en cache du contenu avant l'intervention de mod_include et
+ # mod_deflate
+CacheQuickHandler off
+AddOutputFilterByType CACHE;INCLUDES;DEFLATE text/html
+ </highlight>
<p>Si le filtre CACHE est spécifié plusieurs fois, c'est la dernière
instance qui sera prise en compte.</p>
depuis le cache, mais directement depuis le serveur demandé.</dd>
</dl>
- <example>
- # Active l'en-tête X-Cache<br />
- CacheHeader on<br />
- </example>
+ <highlight language="config">
+# Active l'en-tête X-Cache
+CacheHeader on
+ </highlight>
- <example>
- X-Cache: HIT from localhost<br />
- </example>
+ <highlight language="config">
+ X-Cache: HIT from localhost
+ </highlight>
+
</usage>
</directivesynopsis>
rapide qui est utilisé, elle doit se situer dans un contexte de
serveur principal ou de serveur virtuel, sinon elle sera ignorée.</p>
- <example>
- # Active l'en-tête X-Cache-Detail<br />
- CacheDetailHeader on<br />
- </example>
+ <highlight language="config">
+# Active l'en-tête X-Cache-Detail
+CacheDetailHeader on
+ </highlight>
<example>
X-Cache-Detail: "conditional cache hit: entity refreshed" from localhost<br />
machines, si toutes les entrées du cache doivent posséder la même clé,
cette directive permet de spécifier une nouvelle URL de base.</p>
- <example>
- # Remplace l'URL de base de la clé de cache.<br />
- CacheKeyBaseURL http://www.example.com/<br />
- </example>
+ <highlight language="config">
+# Remplace l'URL de base de la clé de cache.
+CacheKeyBaseURL http://www.example.com/
+ </highlight>
<note type="warning">Prenez garde en définissant cette directive. Si
deux serveurs virtuels distincts possèdent accidentellement la même
réponse 5xx renvoyée au client n'invalidera pas le contenu dans le
cache. </p>
- <example>
- # Sert des données non mises à jour en cas d'erreur.<br />
- CacheStaleOnError on<br />
- </example>
+ <highlight language="config">
+# Sert des données non mises à jour en cas d'erreur.
+CacheStaleOnError on
+ </highlight>
</usage>
</directivesynopsis>
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1301574:1334024 (outdated) -->
+<!-- English Revision : 1334024 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
</note>
<example><title>Exemple</title>
+ <highlight language="config">
LogLevel alert rewrite:trace3
+ </highlight>
</example>
<note><title>RewriteLog</title>
<p>Par exemple, vous pouvez définir une directive
<directive>RewriteMap</directive> comme suit </p>
- <example>
+ <highlight language="config">
RewriteMap map-exemple txt:/chemin/vers/fichier/map.txt
- </example>
+ </highlight>
<p>Vous pourrez ensuite utiliser cette table dans une
directive <directive>RewriteRule</directive> comme suit :</p>
- <example>
+ <highlight language="config">
RewriteRule ^/ex/(.*) ${map-exemple:$1}
- </example>
+ </highlight>
<p>Les combinaisons suivantes pour <em>type de correspondance</em>
et <em>source de la correspondance</em>
<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>
-
-<example>
-<pre>
-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
-</pre>
-</example>
+ <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>
+
+<highlight language="config">
+DocumentRoot /var/www/example.com
+Alias /myapp /opt/myapp-1.2.3
+<Directory /opt/myapp-1.2.3>
+ RewriteEngine On
+ RewriteBase /myapp/
+ RewriteRule ^index\.html$ welcome.html
+</Directory>
+</highlight>
</usage>
</directivesynopsis>
non désiré.
</p>
- <example>
+ <highlight language="config">
RewriteCond expr "! %{HTTP_REFERER} -strmatch '*://%{HTTP_HOST}/*'"<br />
RewriteRule ^/images - [F]
- </example>
+ </highlight>
</li>
<li>Vous pouvez aussi définir certains drapeaux pour
Permet de chaîner les conditions de règles avec un OU au
lieu du AND implicite. Exemple typique :
-<example>
-<pre>
+<highlight language="config">
RewriteCond %{REMOTE_HOST} ^host1 [OR]
RewriteCond %{REMOTE_HOST} ^host2 [OR]
RewriteCond %{REMOTE_HOST} ^host3
RewriteRule ...règles concernant tous ces hôtes...
-</pre>
-</example>
+</highlight>
Sans ce drapeau, les paires
condition/règle devraient être écrites trois fois.
l'en-tête ``<code>User-Agent:</code>'' de la requête, vous
pouvez utiliser ce qui suit : </p>
-<example>
-<pre>
+<highlight language="config">
RewriteCond %{HTTP_USER_AGENT} ^Mozilla
RewriteRule ^/$ /homepage.max.html [L]
RewriteRule ^/$ /homepage.min.html [L]
RewriteRule ^/$ /homepage.std.html [L]
-</pre>
-</example>
+</highlight>
<p>Explications : si vous utilisez un navigateur
(Netscape Navigator, Mozilla etc) qui s'identifie comme
<a id="regexp" name="regexp">expression rationnelle</a>
compatible perl. Dans la première règle de réécriture,
l'expression est comparée au (%-decoded)
- <a href="./directive-dict.html#Syntax">chemin de l'URL</a> de la
- requête ; les expressions suivantes sont comparées à la sortie de
- la dernière règle de réécriture qui a été appliquée.</p>
+ <a href="./directive-dict.html#Syntax">chemin de l'URL</a> (ou au
+ <a href="./directive-dict.html#Syntax">chemin fichier</a>, en
+ fonction du contexte) de la
+ requête. Les expressions suivantes sont comparées à la sortie de
+ la dernière règle de réécriture qui
+ correspondait.</p>
<note><title><a id="what_is_matched" name="what_is_matched">Qu'est-ce qui est comparé ?</a></title>
module="core">Directory</directive> et htaccess, le
<em>modèle</em> est tout d'abord comparé au chemin du <em>système
de fichiers</em>, après suppression du préfixe ou chemin de base
- ayant conduit à la règle <directive>RewriteRule</directive> (par
+ ayant conduit le serveur vers la règle <directive>RewriteRule</directive> (par
exemple "app1/index.html" ou
"index.html" selon l'endroit où les directives sont définies).</p>
<p>Chaque règle de réécriture s'applique au résultat de la règle
précédente, selon l'ordre dans lequel elles ont été définies dans
- le fichier de configuration. L'URI du chemin du fichier (voir
+ le fichier de configuration. Le chemin de l'URL ou du système de fichier (voir
ci-dessus <a href="#what_is_matched">Qu'est-ce qui est
comparé ?</a>) est <strong>intégralement
remplacée</strong> par la chaîne de <em>Substitution</em> et le