Serveur Apache HTTP Version 2.4
Module Apache mod_sed
Description: | Filtre les contenus en entrée (requêtes) et en sortie
(réponses) en utilisant la syntaxe de sed |
---|---|
Statut: | |
Identificateur de Module: | sed_module |
Fichier Source: | mod_sed.c sed0.c sed1.c regexp.c regexp.h sed.h |
Compatibilité: | Disponible depuis la version 2.3 d'Apache |
Sommaire
mod_sed
est un filtre de contenu "in-process". Le
filtre mod_sed
fournit les commandes d'édition de
sed
implémentées par le programme sed
de
Solaris 10 comme décrit dans la page de
manuel. Cependant, à la différence de sed
,
mod_sed
ne reçoit pas de données sur son entrée
standard. Au lieu de cela, le filtre agit sur les données échangées
entre le client et le serveur. mod_sed
peut être
utilisé comme filtre en entrée ou en sortie. mod_sed
est un filtre de contenu, ce qui signifie qu'on ne peut pas l'utiliser
pour modifier les en-têtes http du client ou du serveur.
Le filtre en sortie mod_sed
accepte un tronçon de
données, exécute le script sed
sur ces données, puis génère
une sortie qui est transmise au filtre suivant dans la chaîne.
Le filtre en entrée mod_sed
reçoit des données en
provenance du filtre suivant dans la chaîne, exécute les scripts
sed
, et renvoie les données générées au filtre appelant
dans la chaîne de filtrage.
Les filtres en entrée ou en sortie ne traitent les données que si des caractères newline sont détectés dans le contenu à filtrer. A la fin des données, ce qui reste est traité comme la dernière ligne.
Vous trouverez sur le blog de l'auteur un article en forme de tutoriel, ainsi que les raisons pour lesquelles ce filtre est plus puissant qu'une simple recherche/remplacement de chaîne ou d'expression rationnelle.
Exemple de configuration
Ajout d'un filtre en sortie
# Dans l'exemple suivant, le filtre sed va remplacer la chaîne # "monday" par "MON" et la chaîne "sunday" par "SUN" dans les # documents html avant de les envoyer au client. <Directory "/var/www/docs/sed"> AddOutputFilter Sed html OutputSed "s/monday/MON/g" OutputSed "s/sunday/SUN/g" </Directory>
Ajout d'un filtre en entrée
# Dans l'exemple suivant, le filtre sed va remplacer la chaîne # "monday" par "MON" et la chaîne "sunday" par "SUN" dans les # données POST envoyées à PHP. <Directory "/var/www/docs/sed"> AddInputFilter Sed php InputSed "s/monday/MON/g" InputSed "s/sunday/SUN/g" </Directory>
Commandes sed
Vous trouverez tous les détails à propos de la commande
sed
dans sa page
de manuel.
b
- Saut vers le label spécifié (similaire à goto).
h
- Copie la ligne courante dans le tampon.
H
- Ajoute la ligne courante au tampon.
g
- Copie le contenu du tampon dans la ligne courante.
G
- Ajoute le contenu du tampon à la ligne courante.
x
- Echange les contenus du tampon et de la ligne courante.
Directive InputSed
Description: | Commande sed à exécuter pour le filtrage des données d'une
requête (en général des données POST ) |
---|---|
Syntaxe: | InputSed commande-sed |
Contexte: | répertoire, .htaccess |
Statut: | |
Module: | mod_sed |
La directive InputSed
permet de spécifier
la commande sed à exécuter pour le filtrage des données (en général
des données POST
) d'une requête.