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 par RewriteRule ^/ 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>


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow