Serveur Apache HTTP Version 2.4
Description: | Effectue des op�rations de recherche/remplacement sur les corps de r�ponses |
---|---|
Statut: | Extension |
Identificateur�de�Module: | substitute_module |
Fichier�Source: | mod_substitute.c |
Compatibilit�: | Disponible depuis la version 2.2.7 du serveur HTTP Apache |
mod_substitute
fournit un m�canisme permettant
d'effectuer des substitutions de cha�nes fixes ou d'expressions
rationnelles sur les corps de r�ponses.
Description: | Mod�le de substition dans le contenu de la r�ponse |
---|---|
Syntaxe: | Substitute s/mod�le/substitution/[infq] |
Contexte: | r�pertoire, .htaccess |
AllowOverride: | FileInfo |
Statut: | Extension |
Module: | mod_substitute |
La directive Substitute
permet de
sp�cifier un mod�le de recherche/remplacement � appliquer au corps
de la r�ponse.
La signification du mod�le peut �tre modifi�e via toute combinaison de ces drapeaux :
i
n
n
force le traitement du
mod�le en tant que cha�ne fixe.f
f
, mod_substitute met � plat le
r�sultat d'une substitution (les conteneurs ou buckets ne sont
pas dissoci�s), ce qui permet � d'�ventuelles substitutions
ult�rieures de s'effectuer sur cette derni�re. C'est le
comportement par d�faut.q
q
, mod_substitute dissocie les
conteneurs (ou buckets) apr�s chaque substitution. Ceci peut
am�liorer la rapidit� de la r�ponse et diminuer la quantit� de
m�moire utilis�e, mais ne doit �tre utilis� que s'il n'existe
aucune possibilit� pour que le r�sultat d'une substitution ne
corresponde au mod�le ou � l'expression rationnelle d'une
substitution ult�rieure.<Location /> AddOutputFilterByType SUBSTITUTE text/html Substitute s/foo/bar/ni </Location>
Si le mod�le ou la cha�ne de substitution contient un caract�re slash '/', il faut utiliser un autre d�limiteur :
<Location /> AddOutputFilterByType SUBSTITUTE text/html Substitute "s|<BR */?>|<br />|i" </Location>
Lorsqu'on utilise des expressions rationnelles, on peut ins�rer des r�f�rences arri�res dans les op�rations de comparaison et de substitution, comme illustr� dans l'exemple suivant :
<Location /> AddOutputFilterByType SUBSTITUTE text/html # "foo=k,bar=k" -> "foo/bar=k" Substitute "s|foo=(\w+),bar=\1|foo/bar=$1" </Location>
Un sc�nario courant d'utilisation de mod_substitute
est la situation o� un serveur frontal mandate des requ�tes pour un
serveur d'arri�re-plan qui renvoie des documents HTML contenant des
URLs int�gr�es cod�es en dur qui font r�f�rence � ce serveur
d'arri�re-plan. Ces URLs ne fonctionnent pas pour l'utilisateur
final car le serveur d'arri�re-plan est hors d'atteinte.
On peut, dans ce cas, utiliser mod_substutite
pour
r��crire ces URLs afin qu'elles soit utilisables dans la partie
situ�e derri�re le mandataire :
ProxyPass /blog/ http://internal.blog.example.com ProxyPassReverse /blog/ http://internal.blog.example.com/ Substitute "s|http://internal.blog.example.com/|http://www.example.com/blog/|i"
La directive ProxyPassReverse
modifie tout en-t�te
Location
(redirection) envoy� par le serveur
d'arri�re-plan et, dans cet exemple, la directive
Substitute
se charge � son tour de la modification de
la r�ponse HTML.