From: Lucien Gentis Ce document est un complément à la documentation de référence de
@@ -84,25 +82,25 @@ correspondance Dans le second exemple, plutôt que de rejeter la requête,
nous affichons une autre image à la place. Dans le troisième exemple, nous redirigeons la requête vers
une image appartenant à un autre site. De tous ces exemples, les deux derniers semblent les plus
@@ -119,8 +117,8 @@ RewriteRule \.(gif|jpg|png)$ http://other.example.com/image.gif [R,NC]
simplement interdire l'accès à la ressource, vous pouvez y
parvenir sans utiliser mod_rewrite :RewriteCond %{HTTP_REFERER} !^$
-RewriteCond %{HTTP_REFERER} !www.example.com [NC]
-RewriteRule \.(gif|jpg|png)$ - [F,NC]
+RewriteCond "%{HTTP_REFERER}" "!^$"
+RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
+RewriteRule "\.(gif|jpg|png)$" "-" [F,NC]
RewriteCond %{HTTP_REFERER} !^$
-RewriteCond %{HTTP_REFERER} !www.example.com [NC]
-RewriteRule \.(gif|jpg|png)$ /images/go-away.png [R,NC]
+RewriteCond "%{HTTP_REFERER}" "!^$"
+RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
+RewriteRule "\.(gif|jpg|png)$" "/images/go-away.png" [R,NC]
RewriteCond %{HTTP_REFERER} !^$
-RewriteCond %{HTTP_REFERER} !www.example.com [NC]
-RewriteRule \.(gif|jpg|png)$ http://other.example.com/image.gif [R,NC]
+RewriteCond "%{HTTP_REFERER}" "!^$"
+RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
+RewriteRule "\.(gif|jpg|png)$" "http://other.example.com/image.gif" [R,NC]
SetEnvIf Referer example\.com localreferer
-<FilesMatch \.(jpg|png|gif)$>
+
seulement depuis une source particulière, vous pouvez aussi
spécifier un intervalle d'adresses IP.SetEnvIf Referer "example\.com" localreferer
+<FilesMatch "\.(jpg|png|gif)$">
Require env localreferer
</FilesMatch>
@@ -168,9 +166,9 @@ RewriteRule \.(gif|jpg|png)$ http://other.example.com/image.gif [R,NC]
RewriteCond %{HTTP_USER_AGENT} ^NameOfBadRobot
-RewriteCond %{REMOTE_ADDR} =123\.45\.67\.[8-9]
-RewriteRule ^/secret/files/ - [F]
+RewriteCond "%{HTTP_USER_AGENT}" "^NameOfBadRobot"
+RewriteCond "%{REMOTE_ADDR}" "=123\.45\.67\.[8-9]"
+RewriteRule "^/secret/files/" "-" [F]
@@ -181,8 +179,8 @@ RewriteRule ^/secret/files/ - [F]
Vous pouvez cependant parvenir au même résultat sans utiliser
mod_rewrite via la méthode alternative suivante :
- SetEnvIfNoCase User-Agent ^NameOfBadRobot goaway
-<Location /secret/files>
+ SetEnvIfNoCase User-Agent "^NameOfBadRobot" goaway
+<Location "/secret/files">
<RequireAll>
Require all granted
Require not env goaway
@@ -220,10 +218,10 @@ RewriteRule ^/secret/files/ - [F]
RewriteEngine on
-RewriteMap hosts-deny txt:/path/to/hosts.deny
-RewriteCond ${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND} !=NOT-FOUND [OR]
-RewriteCond ${hosts-deny:%{REMOTE_HOST}|NOT-FOUND} !=NOT-FOUND
-RewriteRule ^ - [F]
+RewriteMap hosts-deny "txt:/path/to/hosts.deny"
+RewriteCond "${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND}" "!=NOT-FOUND" [OR]
+RewriteCond "${hosts-deny:%{REMOTE_HOST}|NOT-FOUND}" "!=NOT-FOUND"
+RewriteRule "^" "-" [F]
Le jeu de règles suivant utilise un fichier de correspondances pour
associer chaque Referer à une cible de redirection. Le fichier de correspondances contient les cibles de
diff --git a/docs/manual/rewrite/access.xml.meta b/docs/manual/rewrite/access.xml.meta
index 8ffc1d8a497..cda0183580c 100644
--- a/docs/manual/rewrite/access.xml.meta
+++ b/docs/manual/rewrite/access.xml.meta
@@ -8,6 +8,6 @@
@@ -274,15 +272,15 @@ bsdti1.sdm.de -
RewriteMap deflector txt:/path/to/deflector.map
+
RewriteMap deflector "txt:/path/to/deflector.map"
-RewriteCond %{HTTP_REFERER} !=""
-RewriteCond ${deflector:%{HTTP_REFERER}} =-
-RewriteRule ^ %{HTTP_REFERER} [R,L]
+RewriteCond "%{HTTP_REFERER}" !=""
+RewriteCond "${deflector:%{HTTP_REFERER}}" "=-"
+RewriteRule "^" "%{HTTP_REFERER}" [R,L]
-RewriteCond %{HTTP_REFERER} !=""
-RewriteCond ${deflector:%{HTTP_REFERER}|NOT-FOUND} !=NOT-FOUND
-RewriteRule ^ ${deflector:%{HTTP_REFERER}} [R,L]
+RewriteCond "%{HTTP_REFERER}" !=""
+RewriteCond "${deflector:%{HTTP_REFERER}|NOT-FOUND}" "!=NOT-FOUND"
+RewriteRule "^" "${deflector:%{HTTP_REFERER}}" [R,L]
Ce document complète la documentation de référence du @@ -105,8 +103,8 @@ http://serveur_physique_utilisateur1/u/utilisateur/chemin possèdera pas d'entrée dans la table de correspondances :
RewriteEngine on
-RewriteMap users-to-hosts txt:/path/to/map.users-to-hosts
-RewriteRule ^/u/([^/]+)/?(.*) http://${users-to-hosts:$1|server0}/u/$1/$2
+RewriteMap users-to-hosts "txt:/path/to/map.users-to-hosts"
+RewriteRule "^/u/([^/]+)/?(.*)" "http://${users-to-hosts:$1|server0}/u/$1/$2"
L'opérateur -U permet de déterminer si la chaîne
@@ -181,8 +179,8 @@ RewriteRule ^(.+)\.html$ /regenerate_page.cgi [PT,L]
serveurs.
RewriteEngine on
-RewriteMap lb rnd:/path/to/serverlist.txt
-RewriteRule ^/(.*) http://${lb:serveurs}/$1 [P,L]
+RewriteMap lb "rnd:/path/to/serverlist.txt"
+RewriteRule "^/(.*)" "http://${lb:serveurs}/$1" [P,L]
liste-serveurs.txt contiendra la liste des serveurs :
RewriteEngine on -RewriteRule ^/~(([a-z])[a-z0-9]+)(.*) /home/$2/$1/public_html$3+RewriteRule "^/~(([a-z])[a-z0-9]+)(.*)" "/home/$2/$1/public_html$3" @@ -294,10 +292,11 @@ RewriteRule ^/~(([a-z])[a-z0-9]+)(.*) /home/$2 -
+RewriteEngine on
-+RewriteCond %{TIME_HOUR}%{TIME_MIN} >0700
-+RewriteCond %{TIME_HOUR}%{TIME_MIN} <1900
-+RewriteRule ^foo\.html$ foo.day.html [L]
+RewriteEngine on
+RewriteCond "%{TIME_HOUR}%{TIME_MIN}" ">0700"
+RewriteCond "%{TIME_HOUR}%{TIME_MIN}" "<1900"
+RewriteRule "^foo\.html$" "foo.day.html" [L]
+RewriteRule "^foo\.html$" "foo.night.html"
Avec cet exemple, l'URL Plus loin dans votre jeu de règles, vous pouvez vérifier le
contenu de cette variable d'environnement via une directive
RewriteCond : Ce document est un complément à la Documentation de référence de
@@ -98,12 +96,16 @@ rediriger toutes les URLs de niveaux inf
Pour rediriger un nom d'hôte vers un autre nom d'hôte, par exemple
+ Pour rediriger les URLs foo.html renvoie
@@ -340,14 +339,14 @@ RewriteRule ^/~(([a-z])[a-z0-9]+)(.*) /home/$2
RewriteEngine on
-RewriteRule ^/cheval/(.*) /poney/$1 [E=rewritten:1]
+RewriteRule "^/cheval/(.*)" "/poney/$1" [E=rewritten:1]
RewriteCond %{ENV:rewritten} =1
+RewriteCond "%{ENV:rewritten}" =1
diff --git a/docs/manual/rewrite/advanced.xml.meta b/docs/manual/rewrite/advanced.xml.meta
index 907cc2406d5..98192e70187 100644
--- a/docs/manual/rewrite/advanced.xml.meta
+++ b/docs/manual/rewrite/advanced.xml.meta
@@ -8,6 +8,6 @@
Redirect /one/ http://one.example.com/
+example.com vers www.example.com, voir la
+méthode Noms d'hôtes canoniques.http vers https,
utilisez cette définition :<VirtualHost *:80>
ServerName www.example.com
-Redirect / https://www.example.com/
+Redirect "/" "https://www.example.com/"
</VirtualHost >
<VirtualHost *:443>
@@ -136,8 +138,8 @@ possible d'effectuer cette mise en correspondance avec
mod_rewrite, il est préférable d'utiliser la directive
Alias pour des raisons de simplicité et de performances.
Alias /cats -/var/www/virtualhosts/felines/htdocs+
Alias "/cats" +"/var/www/virtualhosts/felines/htdocs"
@@ -182,7 +184,7 @@ cela semble
La directive RewriteRule fournit le drapeau [P] qui permet de faire passer les URIs
réécrits par mod_proxy.
RewriteRule ^/?images(.*) http://serveur-images.local/images$1 [P]+
RewriteRule "^/?images(.*)" "http://serveur-images.local/images$1" [P]
Cependant, dans les nombreux cas où aucune correspondance au modèle
@@ -190,14 +192,14 @@ n'est vraiment n
préférable d'utiliser la directive ProxyPass. L'exemple précédent pourrait
être remplacé par :
ProxyPass /images/ http://serveur-images.local/images/+
ProxyPass "/images/" "http://serveur-images.local/images/"
Que vous utilisiez RewriteRule ou ProxyPass, vous devrez dans tous les cas
utiliser aussi la directive ProxyPassReverse pour intercepter les
redirections en provenance du serveur d'arrière-plan :
ProxyPassReverse /images/ http://serveur-images.local/images/+
ProxyPassReverse "/images/" "http://serveur-images.local/images/"
Vous devrez cependant tout de même utiliser RewriteRule
@@ -222,7 +224,7 @@ directive <If>
suit :
<If "req('Host') != 'www.example.com'">
- Redirect / http://www.example.com
+ Redirect "/" "http://www.example.com"
</If>
diff --git a/docs/manual/rewrite/avoid.xml.meta b/docs/manual/rewrite/avoid.xml.meta
index 405691d6afd..9d51904e7ba 100644
--- a/docs/manual/rewrite/avoid.xml.meta
+++ b/docs/manual/rewrite/avoid.xml.meta
@@ -8,6 +8,6 @@
Ce document décrit les drapeaux disponibles dans la directive
RewriteRule, en fournissant
@@ -97,7 +95,7 @@ ces derni
non-alphanumériques des références arrières seront échappés. Considérons
par exemple cette règle :
RewriteRule ^search/(.*)$ /search.php?term=$1+
RewriteRule "^search/(.*)$" "/search.php?term=$1"
Soit le terme de recherche 'x & y/z' ; un navigateur va le coder @@ -192,7 +190,7 @@ fonctionnalit
Voici un exemple :
RewriteEngine On -RewriteRule ^/index\.html - [CO=frontdoor:yes:.example.org:1440:/]+RewriteRule "^/index\.html" "-" [CO=frontdoor:yes:.example.org:1440:/]
Dans l'exemple ci-dessus, la règle ne réécrit @@ -281,8 +279,8 @@ image. Cette variable d'environnement est ensuite utilis une telle requête du journal des accès.
-RewriteRule \.(png|gif|jpg) - [E=image:1]
-CustomLog logs/access_log combined env=!image
+RewriteRule "\.(png|gif|jpg)" "-" [E=image:1]
+CustomLog "logs/access_log" combined env=!image
Notez que le même effet peut être obtenu à l'aide de la directive @@ -310,7 +308,7 @@ Forbidden.
La règle suivante va interdire la téléchargement de fichiers
.exe depuis votre serveur.
RewriteRule \.exe - [F]+
RewriteRule "\.exe" "-" [F]
Cet exemple utilise la syntaxe "-" pour la cible de réécriture, ce @@ -331,7 +329,7 @@ disponible auparavant ne l'est plus actuellement.
Comme dans le cas du drapeau [F], on utilise en général la syntaxe "-" pour la cible de réécriture lorsqu'on utilise le drapeau [G] :
-RewriteRule oldproduct - [G,NC]+
RewriteRule "oldproduct" "-" [G,NC]
Lorsqu'on utilise [G], [L] est implicite - c'est à dire que la @@ -345,8 +343,7 @@ sp l'interprétation de tous les fichiers sans extension par le gestionnaire php :
-RewriteRule !\. - -[H=application/x-httpd-php]+
RewriteRule "!\." "-" [H=application/x-httpd-php]
@@ -360,7 +357,7 @@ faire en sorte que les fichiers .php soient
affichés par mod_php dans le cas où ils font
l'objet d'une requête avec l'extension .phps :
RewriteRule ^(/source/.+\.php)s$ $1 [H=application/x-httpd-php-source]+
RewriteRule "^(/source/.+\.php)s$" "$1" [H=application/x-httpd-php-source]@@ -414,9 +411,9 @@ de requ directive
RewriteCond permet de s'assurer que si
la requête concerne déjà index.php, la directive RewriteRule sera sautée.
-RewriteBase /
-RewriteCond %{REQUEST_URI} !=/index.php
-RewriteRule ^(.*) /index.php?req=$1 [L,PT]
+RewriteBase "/"
+RewriteCond "%{REQUEST_URI}" "!=/index.php"
+RewriteRule "^(.*)" "/index.php?req=$1" [L,PT]
RewriteRule (.*)A(.*) $1B$2 [N]+
RewriteRule "(.*)A(.*)" "$1B$2" [N]
Vous pouvez vous représenter ce traitement comme une boucle
@@ -447,9 +444,9 @@ un B).
# On veut remplacer 1 caractère à chaque itération de la boucle -RewriteRule (.+)[><;]$ $1 [N=64000] +RewriteRule "(.+)[><;]$" "$1" [N=64000] # ... ou s'arrêter après 10 itérations -RewriteRule (.+)[><;]$ $1 [N=10]+RewriteRule "(.+)[><;]$" "$1" [N=10]
.jpg aussi
bien que .JPG seront acceptés.
-RewriteRule (.*\.(jpg|gif|png))$ http://images.example.com$1 [P,NC]+
RewriteRule "(.*\.(jpg|gif|png))$" "http://images.example.com$1" [P,NC]
.JPG seront accept
hexadécimal. Le drapeau [NE] permet d'éviter cette conversion.
-RewriteRule ^/anchor/(.+) /bigpage.html#$1 [NE,R]+
RewriteRule "^/anchor/(.+)" "/bigpage.html#$1" [NE,R]
@@ -521,7 +518,7 @@ mandataire. Par exemple, si vous voulez que toutes les requ soient traitées par un serveur d'images annexe, vous pouvez utiliser une règle de ce style :
-RewriteRule /(.*)\.(jpg|gif|png)$ http://images.example.com/$1.$2 [P]+
RewriteRule "/(.*)\.(jpg|gif|png)$" "http://images.example.com/$1.$2" [P]
L'utilisation du drapeau [P] provoque aussi l'effet du drapeau [L] -
@@ -581,8 +578,8 @@ Si par exemple, vous avez un Alias sera bien évalué.
Alias /icons /usr/local/apache/icons -RewriteRule /pics/(.+)\.jpg$ /icons/$1.gif [PT]+
Alias "/icons" "/usr/local/apache/icons" +RewriteRule "/pics/(.+)\.jpg$" "/icons/$1.gif" [PT]
@@ -613,8 +610,7 @@ Avec le drapeau [QSA], les cha
Considérons la règle suivante :
-RewriteRule /pages/(.+) /page.php?page=$1 -[QSA]+
RewriteRule "/pages/(.+)" "/page.php?page=$1" [QSA]
Avec le drapeau [QSA], une requête pour
@@ -694,13 +690,13 @@ Ceci peut s'interpr
l'exemple suivant, nous ne voulons exécuter la règle RewriteRule que si l'URI demandé ne
correspond pas à un fichier existant.
# La requête concerne-t-elle un fichier qui n'existe pas ?
-RewriteCond %{REQUEST_FILENAME} !-f
-RewriteCond %{REQUEST_FILENAME} !-d
+RewriteCond "%{REQUEST_FILENAME}" "!-f"
+RewriteCond "%{REQUEST_FILENAME}" "!-d"
# Si c'est la cas, on saute les deux règles de réécriture suivantes
-RewriteRule .? - [S=2]
+RewriteRule ".?" "-" [S=2]
-RewriteRule (.*\.gif) images.php?$1
-RewriteRule (.*\.html) docs.php?$1
+RewriteRule "(.*\.gif)" "images.php?$1"
+RewriteRule "(.*\.html)" "docs.php?$1"
@@ -715,18 +711,18 @@ d'
bloc then contiendra skip=N, où N est le nombre de règles
contenues dans le bloc else :
# Est-ce que le fichier existe ?
-RewriteCond %{REQUEST_FILENAME} !-f
-RewriteCond %{REQUEST_FILENAME} !-d
+RewriteCond "%{REQUEST_FILENAME}" "!-f"
+RewriteCond "%{REQUEST_FILENAME}" "!-d"
# Create an if-then-else construct by skipping 3 lines if we meant to go to the "else" stanza.
-RewriteRule .? - [S=3]
+RewriteRule ".?" "-" [S=3]
# Si le fichier existe, alors :
-RewriteRule (.*\.gif) images.php?$1
- RewriteRule (.*\.html) docs.php?$1
+RewriteRule "(.*\.gif)" "images.php?$1"
+ RewriteRule "(.*\.html)" "docs.php?$1"
# Skip past the "else" stanza.
- RewriteRule .? - [S=1]
+ RewriteRule ".?" "-" [S=1]
# ELSE...
-RewriteRule (.*) 404.php?file=$1
+RewriteRule "(.*)" "404.php?file=$1
# END
@@ -744,7 +740,7 @@ du code source Perl en tant que plein texte, s'il est requis d'une
certaine manière :
# Sert les fichier .pl en tant que plein texte -RewriteRule \.pl$ - [T=text/plain]+RewriteRule "\.pl$" "-" [T=text/plain]
Ou encore, si vous possédez une caméra qui produit des fichiers @@ -752,7 +748,7 @@ images jpeg sans extension, vous pouvez forcer le renvoi de ces images avec le type MIME correct en se basant sur le nom du fichier :
# Les fichiers dont le nom contient 'IMG' sont des images jpg. -RewriteRule IMG - [T=image/jpg]+RewriteRule "IMG" "-" [T=image/jpg]
Notez cependant qu'il s'agit d'un exemple trivial, et que le problème
diff --git a/docs/manual/rewrite/flags.xml.meta b/docs/manual/rewrite/flags.xml.meta
index e4f3ee6f495..912229af035 100644
--- a/docs/manual/rewrite/flags.xml.meta
+++ b/docs/manual/rewrite/flags.xml.meta
@@ -8,6 +8,6 @@
Ce document est un complément de la documentation de référence du module @@ -64,9 +62,9 @@ correspondance
RewriteEngine on -RewriteBase /produits/ -RewriteRule ^widget/(.*)$ http://produits.example.com/widget/$1 [P] -ProxyPassReverse /produits/objet/ http://produits.example.com/objet/+RewriteBase "/produits/" +RewriteRule "^widget/(.*)$" "http://produits.example.com/widget/$1" [P] +ProxyPassReverse "/produits/objet/" "http://produits.example.com/objet/"
Dans le deuxième exemple, nous ne mandatons la requête que si nous @@ -75,10 +73,10 @@ ProxyPassReverse /produits/objet/ http://produits.example.com/objet/ autre, et que vous n'êtes pas certain que tout le contenu a déjà été migré.
-RewriteCond %{REQUEST_FILENAME} !-f
-RewriteCond %{REQUEST_FILENAME} !-d
-RewriteRule ^/(.*) http://ancien.exemple.com/$1 [P]
-ProxyPassReverse / http://ancien.exemple.com/
+RewriteCond "%{REQUEST_FILENAME}" !-f
+RewriteCond "%{REQUEST_FILENAME}" !-d
+RewriteRule "^/(.*)" "http://ancien.exemple.com/$1" [P]
+ProxyPassReverse "/" "http://ancien.exemple.com/"
diff --git a/docs/manual/rewrite/proxy.xml.meta b/docs/manual/rewrite/proxy.xml.meta
index b3fd4080c15..07ad4e7e07a 100644
--- a/docs/manual/rewrite/proxy.xml.meta
+++ b/docs/manual/rewrite/proxy.xml.meta
@@ -8,6 +8,6 @@
Ce document est un complément à la Documentation de référence de @@ -83,7 +81,7 @@ copier/coller dans vos fichiers de configuration. la règle suivante :
RewriteEngine on -RewriteRule ^/foo\.html$ /bar.html [PT]+RewriteRule "^/foo\.html$" "/bar.html" [PT] @@ -115,7 +113,7 @@ RewriteRule ^/foo\.html$ /bar.html [PT]
RewriteEngine on -RewriteRule ^foo\.html$ bar.html [R]+RewriteRule "^foo\.html$" "bar.html" [R] @@ -126,7 +124,7 @@ RewriteRule ^foo\.html$ bar.html [ -
Redirect /foo.html /bar.html+
Redirect "/foo.html" "/bar.html"@@ -157,15 +155,15 @@ RewriteRule ^foo\.html$ bar.html [#Avec mod_rewrite RewriteEngine on -RewriteRule ^/docs/(.+) http://nouveau.example.com/docs/$1 [R,L] +RewriteRule "^/docs/(.+)" "http://nouveau.example.com/docs/$1" [R,L]
#Avec RedirectMatch -RedirectMatch ^/docs/(.*) http://nouveau.example.com/docs/$1+RedirectMatch "^/docs/(.*)" "http://nouveau.example.com/docs/$1"
#Avec Redirect -Redirect /docs/ http://nouveau.example.com/docs/+Redirect "/docs/" "http://nouveau.example.com/docs/" @@ -197,8 +195,8 @@ Redirect /docs/ http://nouveau.example.com/docs/
/~quux/foo.cgi.
RewriteEngine on -RewriteBase /~quux/ -RewriteRule ^foo\.html$ foo.cgi [H=cgi-script]+RewriteBase "/~quux/" +RewriteRule "^foo\.html$" "foo.cgi" [H=cgi-script] @@ -234,13 +232,13 @@ RewriteRule ^foo\.html$ foo.cgi
# jeu de règles assurant une compatibilité ascendante en réécrivant@@ -293,7 +291,7 @@ une section de serveur virtuel pour le/les noms d'h ServerName undesired.example.com ServerAlias example.com notthis.example.com - Redirect / http://www.example.com/ + Redirect "/" "http://www.example.com/" </VirtualHost> <VirtualHost *:80> @@ -304,7 +302,7 @@ une section de serveur virtuel pour le/les noms d'h
# document.html en document.php si et seulement si document.php
# existe -<Directory /var/www/htdocs> +<Directory "/var/www/htdocs"> RewriteEngine on - RewriteBase /var/www/htdocs + RewriteBase "/var/www/htdocs" - RewriteCond $1.php -f - RewriteCond $1.html !-f - RewriteRule ^(.*).html$ $1.php + RewriteCond "$1.php" -f + RewriteCond "$1.html" !-f + RewriteRule "^(.*).html$" "$1.php" </Directory>
Vous pouvez aussi utiliser la directive <If> :
<If "%{HTTP_HOST} != 'www.example.com'">
- Redirect / http://www.example.com/
+ Redirect "/" "http://www.example.com/"
</If>
@@ -312,7 +310,7 @@ une section de serveur virtuel pour le/les noms d'h
:
<If "%{SERVER_PROTOCOL} != 'HTTPS'">
- Redirect /admin/ https://www.example.com/admin/
+ Redirect "/admin/" "https://www.example.com/admin/"
</If>
@@ -322,16 +320,16 @@ d'un jeu plus important de r
la recette suivante :
Pour les sites écoutant sur un port autre que 80:
-RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
-RewriteCond %{HTTP_HOST} !^$
-RewriteCond %{SERVER_PORT} !^80$
-RewriteRule ^/?(.*) http://www.example.com:%{SERVER_PORT}/$1 [L,R,NE]
+RewriteCond "%{HTTP_HOST}" "!^www\.example\.com" [NC]
+RewriteCond "%{HTTP_HOST}" "!^$"
+RewriteCond "%{SERVER_PORT}" "!^80$"
+RewriteRule "^/?(.*)" "http://www.example.com:%{SERVER_PORT}/$1" [L,R,NE]
Et pour un site écoutant sur le port 80
-RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
-RewriteCond %{HTTP_HOST} !^$
-RewriteRule ^/?(.*) http://www.example.com/$1 [L,R,NE]
+RewriteCond "%{HTTP_HOST}" "!^www\.example\.com" [NC]
+RewriteCond "%{HTTP_HOST}" "!^$"
+RewriteRule "^/?(.*)" "http://www.example.com/$1" [L,R,NE]
Si vous souhaitez que cette règle s'applique à tous les noms de @@ -341,9 +339,9 @@ RewriteRule ^/?(.*) http://www.example.com/$1 [L,R,NE] possibles de example.com, vous pouvez utiliser le jeu de règles suivants :
-RewriteCond %{HTTP_HOST} !^www\. [NC]
-RewriteCond %{HTTP_HOST} !^$
-RewriteRule ^/?(.*) http://www.%{HTTP_HOST}/$1 [L,R,NE]
+RewriteCond "%{HTTP_HOST}" "!^www\." [NC]
+RewriteCond "%{HTTP_HOST}" "!^$"
+RewriteRule "^/?(.*)" "http://www.%{HTTP_HOST}/$1" [L,R,NE]
Vous pouvez utiliser ce jeu de règles aussi bien dans le fichier @@ -382,17 +380,17 @@ RewriteRule ^/?(.*) http://www.%{HTTP_HOST}/$1 [L,R,NE] # on cherche tout d'abord dans dir1/... # ... et si on trouve, on est content et on arrête : -RewriteCond %{DOCUMENT_ROOT}/dir1/%{REQUEST_URI} -f -RewriteRule ^(.+) %{DOCUMENT_ROOT}/dir1/$1 [L] +RewriteCond "%{DOCUMENT_ROOT}/dir1/%{REQUEST_URI}" -f +RewriteRule "^(.+)" "%{DOCUMENT_ROOT}/dir1/$1" [L] # on cherche ensuite dans dir2/... # ... et si on trouve, on est content et on arrête : -RewriteCond %{DOCUMENT_ROOT}/dir2/%{REQUEST_URI} -f -RewriteRule ^(.+) %{DOCUMENT_ROOT}/dir2/$1 [L] +RewriteCond "%{DOCUMENT_ROOT}/dir2/%{REQUEST_URI}" -f +RewriteRule "^(.+)" "%{DOCUMENT_ROOT}/dir2/$1" [L] # sinon, on continue la recherche avec d'autres directives Alias # ou ScriptAlias, etc... -RewriteRule ^ - [PT] +RewriteRule "^" "-" [PT] @@ -424,9 +422,9 @@ RewriteRule ^ - [PT]
HostnameLookups on
RewriteEngine on
-RewriteMap multiplex txt:/path/to/map.mirrors
-RewriteCond %{REMOTE_HOST} ([a-z]+)$ [NC]
-RewriteRule ^/(.*)$ ${multiplex:%1|http://www.example.com/}$1 [R,L]
+RewriteMap multiplex "txt:/path/to/map.mirrors"
+RewriteCond "%{REMOTE_HOST}" "([a-z]+)$ [NC]"
+RewriteRule "^/(.*)$" "${multiplex:%1|http://www.example.com/}$1" [R,L]
@@ -479,14 +477,14 @@ com http://www.example.com/
foo.20.html. Tous les autres navigateurs
reçoivent la page foo.32.html. Tout ceci est
effectué par le jeu de règles suivant :
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/3.*
-RewriteRule ^foo\.html$ foo.NS.html [L]
+RewriteCond "%{HTTP_USER_AGENT}" "^Mozilla/3.*"
+RewriteRule "^foo\.html$" "foo.NS.html" [L]
-RewriteCond %{HTTP_USER_AGENT} ^Lynx/ [OR]
-RewriteCond %{HTTP_USER_AGENT} ^Mozilla/[12]
-RewriteRule ^foo\.html$ foo.20.html [L]
+RewriteCond "%{HTTP_USER_AGENT}" "^Lynx/" [OR]
+RewriteCond "%{HTTP_USER_AGENT}" "^Mozilla/[12]"
+RewriteRule "^foo\.html$" "foo.20.html" [L]
-RewriteRule ^foo\.html$ foo.32.html [L]
+RewriteRule "^foo\.html$" "foo.32.html" [L]
@@ -518,7 +516,7 @@ RewriteRule ^foo\.html$ foo.32.html [L
jeu de règles suivant, nous remplaçons /matous et
/minettes par le canonique /chats.
- RewriteRule ^/(matous|minettes)/(.*) /chats/$2 [R]+
RewriteRule "^/(matous|minettes)/(.*)" "/chats/$2" [R]@@ -526,7 +524,7 @@ RewriteRule ^foo\.html$ foo.32.html [L
RedirectMatch ^/(matous|minettes)/(.*) /chats/$2+
RedirectMatch "^/(matous|minettes)/(.*)" "/chats/$2"
RewriteEngine on -RewriteRule ^/$ /a-propos-de/ [R]+RewriteRule "^/$" "/a-propos-de/" [R]
Notez que l'on peut aussi y parvenir en utilisant la directive
RedirectMatch :
RedirectMatch ^/$ -http://example.com/a-propos-de/+
RedirectMatch "^/$" "http://example.com/a-propos-de/"
Notez aussi que cet exemple ne réécrit que l'URL racine. En d'autres @@ -597,8 +594,8 @@ existant effectivement comme une image, ou un fichier css.
Depuis la version 2.2.16, vous pouvez y parvenir via la directive
FallbackResource :
<Directory /var/www/my_blog> - FallbackResource index.php +<Directory "/var/www/my_blog"> + FallbackResource "index.php" </Directory>@@ -606,12 +603,12 @@ existant effectivement comme une image, ou un fichier css. les versions plus anciennes d'Apache, utiliser un jeu de règles du style : -<Directory /var/www/my_blog> - RewriteBase /my_blog +<Directory "/var/www/my_blog"> + RewriteBase "/my_blog" - RewriteCond /var/www/my_blog/%{REQUEST_FILENAME} !-f - RewriteCond /var/www/my_blog/%{REQUEST_FILENAME} !-d - RewriteRule ^ index.php [PT] + RewriteCond "/var/www/my_blog/%{REQUEST_FILENAME}" !-f + RewriteCond "/var/www/my_blog/%{REQUEST_FILENAME}" !-d + RewriteRule "^" "index.php" [PT] </Directory>@@ -619,7 +616,7 @@ les versions plus anciennes d'Apache, utiliser un jeu de r que chaîne de paramètres à index.php, vous pouvez remplacer cette règle de réécriture par : -RewriteRule (.*) index.php?$1 [PT,QSA]+RewriteRule "(.*)" "index.php?$1" [PT,QSA]Notez que l'on peut utiliser ces jeux de règles aussi bien dans un @@ -652,8 +649,8 @@ doubles perluettes '&&' dans les substitutions.
# Remove mykey=???
-RewriteCond %{QUERY_STRING} (.*(?:^|&))mykey=([^&]*)&?(.*)&?$
-RewriteRule (.*) $1?%1%3
+RewriteCond "%{QUERY_STRING}" "(.*(?:^|&))mykey=([^&]*)&?(.*)&?$"
+RewriteRule "(.*)" "$1?%1%3"
# Copy from query string to PATH_INFO
-RewriteCond %{QUERY_STRING} (.*(?:^|&))mykey=([^&]*)&?(.*)&?$
-RewriteRule (.*) $1/products/%2/? [PT]
+RewriteCond "%{QUERY_STRING}" "(.*(?:^|&))mykey=([^&]*)&?(.*)&?$"
+RewriteRule "(.*)" "$1/products/%2/?" [PT]
@@ -670,9 +667,9 @@ RewriteRule (.*) $1/products/%2/? [PT]
condition ::
# Capture the value of mykey in the query string
-RewriteCond %{QUERY_STRING} (.*(?:^|&))mykey=([^&]*)&?(.*)&?$
-RewriteCond %2 !=not-so-secret-value
-RewriteRule (.*) - [F]
+RewriteCond "%{QUERY_STRING}" "(.*(?:^|&))mykey=([^&]*)&?(.*)&?$""
+RewriteCond "%2" !=not-so-secret-value
+RewriteRule "(.*)" - [F]
@@ -681,7 +678,7 @@ RewriteRule (.*) - [F]
vers sa chaîne de paramètres :
# The desired URL might be /products/kitchen-sink, and the script expects # /path?products=kitchen-sink. -RewriteRule ^/?path/([^/]+)/([^/]+) /path?$1=$2 [PT]+RewriteRule "^/?path/([^/]+)/([^/]+)" "/path?$1=$2" [PT] diff --git a/docs/manual/rewrite/remapping.xml.meta b/docs/manual/rewrite/remapping.xml.meta index 5e5f6e1602e..fc4dfefebf2 100644 --- a/docs/manual/rewrite/remapping.xml.meta +++ b/docs/manual/rewrite/remapping.xml.meta @@ -8,6 +8,6 @@
Ce document est un complément à la documentation de référence du @@ -102,17 +100,17 @@
Par exemple, vous pouvez définir une directive
RewriteMap comme suit :
RewriteMap examplemap txt:/path/to/file/map.txt+
RewriteMap examplemap "txt:/path/to/file/map.txt"
Vous pourrez par la suite utiliser cette table de correspondances
dans une directive RewriteRule comme suit :
RewriteRule ^/ex/(.*) ${examplemap:$1}
+RewriteRule "^/ex/(.*)" "${examplemap:$1}"
Il est possible de spécifier une valeur par défaut qui sera utilisée si la recherche dans la table de correspondances est infructueuse :
-RewriteRule ^/ex/(.*) ${examplemap:$1|/not_found.html}
+RewriteRule "^/ex/(.*)" "${examplemap:$1|/not_found.html}"
Product to ID configuration
-RewriteMap product2id txt:/etc/apache2/productmap.txt
-RewriteRule ^/product/(.*) /prods.php?id=${product2id:$1|NOTFOUND} [PT]
+ RewriteMap product2id "txt:/etc/apache2/productmap.txt"
+RewriteRule "^/product/(.*)" "/prods.php?id=${product2id:$1|NOTFOUND}" [PT]
Nous supposons ici que le script prods.php sait quoi
@@ -196,7 +194,7 @@ TELEPHONE 328
dans un fichier .htaccess, vous devrez supprimer le
slash de début dans le modèle de réécriture afin que ce dernier
puisse correspondre à toute URL :
-
RewriteRule ^product/(.*) /prods.php?id=${product2id:$1|NOTFOUND} [PT]
+ RewriteRule "^product/(.*)" "/prods.php?id=${product2id:$1|NOTFOUND}" [PT]
Directives de configuration
-RewriteMap servers rnd:/path/to/file/map.txt
+ RewriteMap servers "rnd:/path/to/file/map.txt"
-RewriteRule ^/(.*\.(png|gif|jpg)) http://${servers:static}/$1 [NC,P,L]
-RewriteRule ^/(.*) http://${servers:dynamic}/$1 [P,L]
+RewriteRule "^/(.*\.(png|gif|jpg))" "http://${servers:static}/$1" [NC,P,L]
+RewriteRule "^/(.*)" "http://${servers:dynamic}/$1" [P,L]
@@ -277,7 +275,7 @@ statique www1|www1|www2|www3|www4
Vous pouvez éventuellement spécifier un type dbm particulier :
-RewriteMap examplemap dbm=sdbm:/etc/apache/mapfile.dbm+
RewriteMap examplemap "dbm=sdbm:/etc/apache/mapfile.dbm"
Ce type peut être choisi parmi sdbm, gdbm, ndbm ou db. Il est @@ -295,7 +293,7 @@ $ httxt2dbm -i fichier-map.txt -o fichier-map.map
Vous pouvez alors faire référence au fichier obtenu dans votre
directive RewriteMap :
RewriteMap mapname dbm:/etc/apache/mapfile.map+
RewriteMap mapname "dbm:/etc/apache/mapfile.map"
RewriteMap.
Redirige un URI vers son équivalent en minuscules
RewriteMap lc int:tolower
-RewriteRule (.*?[A-Z]+.*) ${lc:$1} [R]
+RewriteRule "(.*?[A-Z]+.*)" "${lc:$1}" [R]
Configuration de la réécriture
-RewriteMap d2u prg:/www/bin/dash2under.pl+
-RewriteRule - ${d2u:%{REQUEST_URI}}
RewriteMap d2u "prg:/www/bin/dash2under.pl"
+RewriteRule "-" "${d2u:%{REQUEST_URI}}"
dash2under.pl
diff --git a/docs/manual/rewrite/rewritemap.xml.meta b/docs/manual/rewrite/rewritemap.xml.meta index e385817f7b4..b77e9e61685 100644 --- a/docs/manual/rewrite/rewritemap.xml.meta +++ b/docs/manual/rewrite/rewritemap.xml.meta @@ -8,6 +8,6 @@Ce document est un complément à la documentation de référence du module @@ -78,8 +76,8 @@ correspondance