<-
Apache > Serveur HTTP > Documentation > Version 2.4 > Modules

Module Apache mod_substitute

Langues Disponibles:  en  |  fr 

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

Sommaire

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.

Directives

top

Substitute Directive

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
Effectue une comparaison sans tenir compte de la casse.
n
Par d�faut, le mod�le est trait� en tant qu'expression rationnelle. Le drapeau n force le traitement du mod�le en tant que cha�ne fixe.
f
Avec le drapeau 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
Avec le drapeau 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.

Exemple

<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 :

Exemple d'utilisation d'un d�limiteur alternatif

<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 :

Exemple d'utilisation de r�f�rences arri�res et de captures

<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 :

R��criture des URLs int�gr�es � un contenu mandat�

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.

Langues Disponibles:  en  |  fr 

top

Commentaires

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.