mod-rewrite
Contextes de règles de réécriture
Recherche…
Remarques
Cette rubrique décrit les deux contextes dans lesquels RewriteRule
peut être utilisé. Dans les exemples d'omission de RewriteEngine on
, il est supposé que cette directive s'est produite avant cet exemple.
Réécrire les règles dans un contexte par répertoire
Le contexte par répertoire fait partie du fichier de configuration statique entre les balises <Directory>
et </Directory>
. L'intégralité du contenu des fichiers de configuration dynamiques se situe dans le contexte par répertoire du dossier dans lequel réside le fichier .htaccess.
Le contexte de contexte RewriteRule
par répertoire correspond à la partie d'une URL après le protocole, le nom d'hôte, le port et le préfixe du répertoire dans lequel ils résident, et avant la chaîne de requête.
Dans le fichier de configuration statique
Lorsque la règle suivante est utilisée sur l'URL http://example.com/foo?id=1
, l'expression régulière du premier argument de RewriteRule
est associée à foo
. Le protocole ( http
), le nom d'hôte ( example.com
) et le préfixe de ce répertoire ( /
) sont supprimés. À l'autre extrémité, la chaîne de requête ( ?id=1
) est également supprimée.
<Directory "/">
RewriteRule ^foo$ bar [L]
</Directory>
Dans l'exemple suivant, à l'aide de l'URL http://example.com/topic/15-my-topic-name
, le premier argument de RewriteRule
correspondrait à topic/15-my-topic-name
:
<Directory "/topic/">
RewriteRule ^topic/([0-9]+)-[^/]*/?$ topics.php?id=$1 [L]
</Directory>
Dans le fichier de configuration dynamique
Lorsque la règle suivante est placée dans un fichier .htaccess
qui se trouve dans le dossier www-root, puis utilisée dans l'URL http://example.com/foo?id=1
, la première expression régulière est associée à foo
.
RewriteRule ^foo$ bar [L]
Dans un contexte par répertoire, l'URL correspondante ne commence jamais par un
/
. Dans un tel contexte, une directive commençant parRewriteRule ^/
ne correspondra à rien.
Réécrire des règles dans un contexte d'hôte virtuel
Le contexte d'hôte virtuel fait partie du fichier de configuration statique entre les balises <VirtualHost>
et </VirtualHost>
.
Le contexte de l 'hôte virtuel RewriteRule
correspond à la partie de l' URL après le protocole, le nom d 'hôte et le port, et avant la chaîne de requête.
Lorsque la règle suivante est utilisée pour l'URL http://example.com/foo?id=1
, le regex du premier argument de RewriteRule
est associé à /foo
.
<VirtualHost 1.2.3.4:80>
ServerName example.com
RewriteEngine on
RewriteRule ^/foo$ /bar [L]
</VirtualHost>