2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
4 <!-- English Revision : 1673947 -->
5 <!-- French translation : Lucien GENTIS -->
6 <!-- Reviewed by : Vincent Deffontaines -->
9 Licensed to the Apache Software Foundation (ASF) under one or more
10 contributor license agreements. See the NOTICE file distributed with
11 this work for additional information regarding copyright ownership.
12 The ASF licenses this file to You under the Apache License, Version 2.0
13 (the "License"); you may not use this file except in compliance with
14 the License. You may obtain a copy of the License at
16 http://www.apache.org/licenses/LICENSE-2.0
18 Unless required by applicable law or agreed to in writing, software
19 distributed under the License is distributed on an "AS IS" BASIS,
20 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 See the License for the specific language governing permissions and
22 limitations under the License.
25 <modulesynopsis metafile="mod_sed.xml.meta">
28 <description>Filtre les contenus en entrée (requêtes) et en sortie
29 (réponses) en utilisant la syntaxe de <code>sed</code></description>
30 <status>Expérimental</status>
31 <sourcefile>mod_sed.c sed0.c sed1.c regexp.c regexp.h sed.h</sourcefile>
32 <identifier>sed_module</identifier>
33 <compatibility>Disponible depuis la version 2.3 d'Apache</compatibility>
36 <p><module>mod_sed</module> est un filtre de contenu "in-process". Le
37 filtre <module>mod_sed</module> fournit les commandes d'édition de
38 <code>sed</code> implémentées par le programme <code>sed</code> de
39 Solaris 10 comme décrit dans la <a
40 href="http://www.gnu.org/software/sed/manual/sed.txt">page de
41 manuel</a>. Cependant, à la différence de <code>sed</code>,
42 <module>mod_sed</module> ne reçoit pas de données sur son entrée
43 standard. Au lieu de cela, le filtre agit sur les données échangées
44 entre le client et le serveur. <module>mod_sed</module> peut être
45 utilisé comme filtre en entrée ou en sortie. <module>mod_sed</module>
46 est un filtre de contenu, ce qui signifie qu'on ne peut pas l'utiliser
47 pour modifier les en-têtes http du client ou du serveur.
50 Le filtre en sortie <module>mod_sed</module> accepte un tronçon de
51 données, exécute le script <code>sed</code> sur ces données, puis génère
52 une sortie qui est transmise au filtre suivant dans la chaîne.
56 Le filtre en entrée <module>mod_sed</module> reçoit des données en
57 provenance du filtre suivant dans la chaîne, exécute les scripts
58 <code>sed</code>, et renvoie les données générées au filtre appelant
59 dans la chaîne de filtrage.
63 Les filtres en entrée ou en sortie ne traitent les données que si des
64 caractères newline sont détectés dans le contenu à filtrer. A la fin des
65 données, ce qui reste est traité comme la dernière ligne.
68 <p>Vous trouverez sur le <a
69 href="https://blogs.oracle.com/basant/entry/using_mod_sed_to_filter">blog de
70 l'auteur</a> un article en forme de tutoriel, ainsi que les raisons pour
71 lesquelles ce filtre est plus puissant qu'une simple
72 recherche/remplacement de chaîne ou d'expression rationnelle.</p>
76 <section id="sampleconf"><title>Exemple de configuration</title>
77 <example><title>Ajout d'un filtre en sortie</title>
78 <highlight language="config">
79 # Dans l'exemple suivant, le filtre sed va remplacer la chaîne
80 # "monday" par "MON" et la chaîne "sunday" par "SUN" dans les
81 # documents html avant de les envoyer au client.
82 <Directory "/var/www/docs/sed">
83 AddOutputFilter Sed html
84 OutputSed "s/monday/MON/g"
85 OutputSed "s/sunday/SUN/g"
90 <example><title>Ajout d'un filtre en entrée</title>
91 <highlight language="config">
92 # Dans l'exemple suivant, le filtre sed va remplacer la chaîne
93 # "monday" par "MON" et la chaîne "sunday" par "SUN" dans les
94 # données POST envoyées à PHP.
95 <Directory "/var/www/docs/sed">
96 AddInputFilter Sed php
97 InputSed "s/monday/MON/g"
98 InputSed "s/sunday/SUN/g"
103 <section id="sed_commands"><title>Commandes sed</title>
105 Vous trouverez tous les détails à propos de la commande
106 <code>sed</code> dans sa <a href="http://www.gnu.org/software/sed/manual/sed.txt">page
110 <dt><code>b</code></dt>
111 <dd>Saut vers le label spécifié (similaire à goto).</dd>
112 <dt><code>h</code></dt>
113 <dd>Copie la ligne courante dans le tampon.</dd>
114 <dt><code>H</code></dt>
115 <dd>Ajoute la ligne courante au tampon.</dd>
116 <dt><code>g</code></dt>
117 <dd>Copie le contenu du tampon dans la ligne courante.</dd>
118 <dt><code>G</code></dt>
119 <dd>Ajoute le contenu du tampon à la ligne courante.</dd>
120 <dt><code>x</code></dt>
121 <dd>Echange les contenus du tampon et de la ligne courante.</dd>
126 <name>OutputSed</name>
127 <description>Commande sed pour le filtrage des contenus de type
128 réponse</description>
129 <syntax>OutputSed <var>commande-sed</var></syntax>
130 <contextlist><context>directory</context><context>.htaccess</context>
134 <p>La directive <directive>OutputSed</directive> permet de spécifier
135 la commande <code>sed</code> à exécuter dans le cadre du traitement
136 d'une réponse.
142 <name>InputSed</name>
143 <description>Commande sed à exécuter pour le filtrage des données d'une
144 requête (en général des données <code>POST</code>)</description>
145 <syntax>InputSed <var>commande-sed</var></syntax>
146 <contextlist><context>directory</context><context>.htaccess</context>
150 <p>La directive <directive>InputSed</directive> permet de spécifier
151 la commande sed à exécuter pour le filtrage des données (en général
152 des données <code>POST</code>) d'une requête.