mod_sed Filtre les contenus en entrée (requêtes) et en sortie (réponses) en utilisant la syntaxe de sed Expérimental mod_sed.c sed0.c sed1.c regexp.c regexp.h sed.h sed_module Disponible depuis la version 2.3 d'Apache

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.
OutputSed Commande sed pour le filtrage des contenus de type réponse OutputSed commande-sed directory.htaccess

La directive OutputSed permet de spécifier la commande sed à exécuter dans le cadre du traitement d'une réponse.

InputSed Commande sed à exécuter pour le filtrage des données d'une requête (en général des données POST) InputSed commande-sed directory.htaccess

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.