File: //usr/local/apache.backup/manual/mod/mod_filter.html.fr
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
<!--
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
<title>mod_filter - Serveur Apache HTTP Version 2.4</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
<script src="../style/scripts/prettify.min.js" type="text/javascript">
</script>
<link href="../images/favicon.ico" rel="shortcut icon" /></head>
<body>
<div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
<p class="apache">Serveur Apache HTTP Version 2.4</p>
<img alt="" src="../images/feather.gif" /></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.4</a> > <a href="./">Modules</a></div>
<div id="page-content">
<div id="preamble"><h1>Module Apache mod_filter</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_filter.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../fr/mod/mod_filter.html" title="Fran�ais"> fr </a></p>
</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Module de configuration de filtre intelligent sensible au
contexte</td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur�de�Module:</a></th><td>filter_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">Fichier�Source:</a></th><td>mod_filter.c</td></tr>
<tr><th><a href="module-dict.html#Compatibility">Compatibilit�:</a></th><td>Versions 2.1 et sup�rieures</td></tr></table>
<h3>Sommaire</h3>
<p>Ce module permet une configuration intelligente et d�pendant du
contexte des filtres de contenu en sortie. Par exemple, Apache peut
�tre configur� pour faire traiter diff�rents types de contenus par
diff�rents filtres, m�me lorsque le type de contenu n'est pas connu
� l'avance (par exemple dans un serveur mandataire).</p>
<p>Le fonctionnement de <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> consiste �
introduire des branchements dans la cha�ne de filtrage. Plut�t que
d'ins�rer directement des filtres dans la cha�ne, on ins�re un
s�lecteur de filtre qui va effectuer un branchement conditionnel
vers un fournisseur de filtre. <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> peut
utiliser tout filtre de contenu comme fournisseur ; aucune
modification des modules de filtrage existants n'est n�cessaire
(bien qu'il soit tout de m�me possible de les simplifier).</p>
</div>
<div id="quickview"><h3>Sujets</h3>
<ul id="topics">
<li><img alt="" src="../images/down.gif" /> <a href="#smart">Filtrage intelligent</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#terms">D�clarations de filtres, fournisseurs et
cha�nes</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#config">Configuration de la cha�ne de
filtrage</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#errordocs">Filtrage et statut de la r�ponse</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#upgrade">Mise � jour depuis une configuration du
serveur HTTP Apache 2.2</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#protocol">Gestion de protocole</a></li>
</ul><h3 class="directives">Directives</h3>
<ul id="toc">
<li><img alt="" src="../images/down.gif" /> <a href="#addoutputfilterbytype">AddOutputFilterByType</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#filterchain">FilterChain</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#filterdeclare">FilterDeclare</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#filterprotocol">FilterProtocol</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#filterprovider">FilterProvider</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#filtertrace">FilterTrace</a></li>
</ul>
<ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="smart" id="smart">Filtrage intelligent</a></h2>
<p>Dans le mod�le de filtrage traditionnel, les filtres sont ins�r�s
sans condition � l'aide de la directive <code class="directive"><a href="../mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code> et des directives
apparent�es. Chaque filtre doit ensuite d�terminer s'il doit
s'ex�cuter ou non, et les administrateurs du serveur disposent de
peu de souplesse pour faire en sorte que la cha�ne soit trait�e de
mani�re dynamique.</p>
<p><code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code>, � l'oppos�, fournit aux
administrateurs du serveur un grand degr� de souplesse pour
configurer la cha�ne de filtrage. Concr�tement, la d�cision
d'ins�rer un filtre peut �tre prise en fonction d'une <a href="../expr.html">expression</a> bool�enne complexe. Ceci
g�n�ralise le fonctionnement relativement souple de la directive
<code class="directive">AddOutputFilterByType</code>.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="terms" id="terms">D�clarations de filtres, fournisseurs et
cha�nes</a></h2>
<p class="figure">
<img src="../images/mod_filter_old.gif" width="160" height="310" alt="[Cette image illustre le mod�le de filtrage traditionnel]" /><br />
<dfn>Figure 1:</dfn> Le mod�le de filtrage traditionnel</p>
<p>Dans le mod�le traditionnel, les filtres en sortie constituent
une simple cha�ne s'�tendant depuis le g�n�rateur de contenu (ou
gestionnaire) jusqu'au client. Ce fonctionnement peut convenir s'il
permet d'atteindre le but recherch�, mais pose
probl�me lorsque cette cha�ne doit �tre configur�e dynamiquement en
fonction de la sortie du gestionnaire.</p>
<p class="figure">
<img src="../images/mod_filter_new.gif" width="423" height="331" alt="[Cette image illustre le mod�le de fonctionnement de mod_filter]" /><br />
<dfn>Figure 2:</dfn> Le mod�le de fonctionnement de
<code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code></p>
<p>Le fonctionnement de <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> consiste �
introduire des branchements dans la cha�ne de filtrage. Plut�t que
d'ins�rer directement des filtres dans la cha�ne, on ins�re un
s�lecteur de filtre qui va effectuer un branchement conditionnel
vers un fournisseur de filtre. <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> peut
utiliser tout filtre de contenu comme fournisseur ; aucune
modification des modules de filtrage existants n'est n�cessaire
(bien qu'il soit tout de m�me possible de les simplifier). Il peut y
avoir plusieurs fournisseurs pour un seul filtre, mais un seul
fournisseur sera choisi pour chaque requ�te.</p>
<p>Une cha�ne de filtrage peut comporter autant d'instances du
s�lecteur de filtre que l'on souhaite, chacune d'entre elles pouvant
disposer de plusieurs fournisseurs. Un s�lecteur de filtre poss�dant
un seul fournisseur dont le choix est inconditionnel constitue un
cas particulier : cette situation est �quivalente � l'insertion
directe du filtre dans la cha�ne.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="config" id="config">Configuration de la cha�ne de
filtrage</a></h2>
<p>Trois �tapes sont n�cessaires pour configurer une cha�ne de
filtrage avec <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code>. Voir ci-dessous la
description d�taill�e des directives.</p>
<dl>
<dt>D�claration des filtres</dt>
<dd>La directive <code class="directive"><a href="#filterdeclare">FilterDeclare</a></code> permet de d�clarer un
filtre en lui assignant un nom et un type. Elle n'est obligatoire
que si le filtre n'est pas du type par d�faut
AP_FTYPE_RESOURCE.</dd>
<dt>Enregistrement des fournisseurs</dt>
<dd>La directive <code class="directive"><a href="#filterprovider">FilterProvider</a></code> permet d'associer un
fournisseur � un filtre. Le filtre a �t� �ventuellement d�clar� �
l'aide de la directive <code class="directive"><a href="#filterdeclare">FilterDeclare</a></code> ; si ce n'est pas le cas, FilterProvider
va le d�clarer implicitement avec le type par d�faut
AP_FTYPE_RESOURCE. Le fournisseur doit avoir �t� enregistr� �
l'aide de <code>ap_register_output_filter</code> par un module
quelconque. Le dernier argument de la directive <code class="directive"><a href="#filterprovider">FilterProvider</a></code> est une expression :
le fournisseur s'ex�cutera pour une requ�te si et seulement si
l'expression est �valu�e vraie. L'expression peut �valuer une
requ�te HTTP ou les en-t�tes de la r�ponse, des variables
d'environnement, ou le gestionnaire utilis� par cette requ�te. � la
diff�rence des version pr�c�dentes, mod_filter supporte d�sormais
les expressions complexes associant des crit�res multiples au moyen
d'une logique AND / OR (&& / ||) et de parenth�ses. Pour les
d�tails sur la syntaxe de l'expression, voir la <a href="../expr.html">documentation sur ap_expr</a>.</dd>
<dt>Configuration de la cha�ne de filtrage</dt>
<dd>Les directives ci-dessus permettent d'�laborer les �l�ments
d'une cha�ne de filtrage intelligente, mais pas de les configurer en
vue de leur ex�cution. La directive <code class="directive"><a href="#filterchain">FilterChain</a></code> �labore une cha�ne de filtrage �
partir de filtres intelligents d�clar�s, permettant avec souplesse
d'ins�rer des filtres au d�but ou � la fin de la cha�ne, de
supprimer un filtre ou m�me la cha�ne compl�te.</dd>
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="errordocs" id="errordocs">Filtrage et statut de la r�ponse</a></h2>
<p>Normalement, mod_filter n'applique les filtres qu'aux r�ponses
poss�dant un statut HTTP 200 (OK). Pour pouvoir filtrer des
documents poss�dant un autre statut, vous devez d�finir la variable
d'environnement <var>filter-errordocs</var>, les r�ponses �tant
alors filtr�es sans se pr�occuper de leur statut. Pour d�finir ce
comportement de mani�re plus fine, vous pouvez utiliser des
conditions dans la directive
<code class="directive">FilterProvider</code>.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="upgrade" id="upgrade">Mise � jour depuis une configuration du
serveur HTTP Apache 2.2</a></h2>
<p>La directive <code class="directive"><a href="#filterprovider">FilterProvider</a></code> a �t� modifi�e par
rapport � httpd 2.2 : les arguments <var>match</var> et
<var>dispatch</var> ont �t� remplac�s par l'argument unique
<var>expression</var> plus polyvalent. En g�n�ral, il est possible
de convertir une paire match/dispatch vers les deux c�t�s d'une
expression, de la mani�re suivante :</p>
<div class="example"><p><code>"dispatch = 'match'"</code></p></div>
<p>Les en-t�tes de requ�te et de r�ponse et les variables
d'environnement sont maintenant interpr�t�s selon les syntaxes
respectives <var>%{req:foo}</var>, <var>%{resp:foo}</var> et
<var>%{env:foo}</var>. Les variables <var>%{HANDLER}</var> et
<var>%{CONTENT_TYPE}</var> sont �galement support�es.</p>
<p>Notez que l'�valuation de l'expression ne supporte plus les
comparaisons de sous-cha�nes. Ces derni�res peuvent
�tre remplac�es par des comparaisons d'expressions rationnelles.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="examples" id="examples">Exemples</a></h2>
<dl>
<dt>Inclusions c�t� serveur (SSI)</dt>
<dd>Un exemple simple de remplacement de la directive <code class="directive"><a href="../mod/core.html#addoutputfilterbytype">AddOutputFilterByType</a></code>
<pre class="prettyprint lang-config">FilterDeclare SSI
FilterProvider SSI INCLUDES "%{CONTENT_TYPE} =~ m|^text/html|"
FilterChain SSI</pre>
</dd>
<dt>Inclusions c�t� serveur (SSI)</dt>
<dd>M�me exemple que ci-dessus, mais envoi vers un gestionnaire
(comportement classique des SSI ; les fichiers .shtml sont
trait�s).
<pre class="prettyprint lang-config">FilterProvider SSI INCLUDES "%{HANDLER} = 'server-parsed'"
FilterChain SSI</pre>
</dd>
<dt>�mulation de mod_gzip avec mod_deflate</dt>
<dd>Insertion du filtre INFLATE seulement si l'en-t�te
Accept-Encoding a une valeur autre que "gzip". Ce filtre s'ex�cute
avec le type ftype CONTENT_SET.
<pre class="prettyprint lang-config">FilterDeclare gzip CONTENT_SET
FilterProvider gzip inflate "%{req:Accept-Encoding} !~ /gzip/"
FilterChain gzip</pre>
</dd>
<dt>Diminution de la r�solution d'une image</dt>
<dd>Supposons que nous voulions r�duire la r�solution de toutes les
images web, et que nous disposions de filtres pour les images GIF,
JPEG et PNG.
<pre class="prettyprint lang-config">FilterProvider unpack jpeg_unpack "%{CONTENT_TYPE} = 'image/jpeg'"
FilterProvider unpack gif_unpack "%{CONTENT_TYPE} = 'image/gif'"
FilterProvider unpack png_unpack "%{CONTENT_TYPE} = 'image/png'"
FilterProvider downsample downsample_filter "%{CONTENT_TYPE} = m|^image/(jpeg|gif|png)|"
FilterProtocol downsample "change=yes"
FilterProvider repack jpeg_pack "%{CONTENT_TYPE} = 'image/jpeg'"
FilterProvider repack gif_pack "%{CONTENT_TYPE} = 'image/gif'"
FilterProvider repack png_pack "%{CONTENT_TYPE} = 'image/png'"
<Location "/image-filter">
FilterChain unpack downsample repack
</Location></pre>
</dd>
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="protocol" id="protocol">Gestion de protocole</a></h2>
<p>Historiquement, tout filtre doit s'assurer que toute modification
qu'il effectue est correctement repr�sent�e dans les en-t�tes de la
r�ponse HTTP, et qu'il ne s'ex�cutera pas si cette ex�cution
r�sultait en une modification interdite. Ceci impose aux auteurs de
filtres la corv�e de r�impl�menter certaines fonctionnalit�s
communes dans chaque filtre :</p>
<ul>
<li>De nombreux filtres modifient les contenus, et de ce fait
invalident les balises de ces contenus, leur somme de
contr�le, leur condens� (hash) existant, ainsi que leur
taille.</li>
<li>Les filtres qui n�cessitent une r�ponse enti�re et non tronqu�e en
entr�e, doivent s'assurer qu'il n'ont pas re�u une r�ponse � une
requ�te partielle.</li>
<li>Les filtres qui modifient la sortie d'un autre filtre doivent
s'assurer qu'ils ne violent pas la directive d'un en-t�te
<code>Cache-Control: no-transform</code> �ventuel.</li>
<li>Les filtres peuvent agir sur des r�ponses de fa�on � ce qu'elles
ne puissent plus �tre mises en cache.</li>
</ul>
<p><code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> a pour but de g�rer de mani�re
g�n�rale ces d�tails de l'impl�mentation des filtres, r�duisant par
l�-m�me la complexit� des modules de filtrage de contenu. Le
travail permettant d'atteindre ce but est cependant toujours en
cours ; la directive <code class="directive"><a href="#filterprotocol">FilterProtocol</a></code>
impl�mente certaines de ces fonctionnalit�s � des fins de
compatibilit� ascendante avec les modules d'Apache 2.0. Pour les
versions 2.1 et sup�rieures de httpd, les API
<code>ap_register_output_filter_protocol</code> et
<code>ap_filter_protocol</code> permettent aux modules de filtrage
de d�finir leurs propres comportements.</p>
<p>Cependant, <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> ne doit pas interf�rer
avec un filtre qui g�re d�j� tous les aspects du protocole. Par
d�faut (c'est � dire en l'absence de toute directive <code class="directive"><a href="#filterprotocol">FilterProtocol</a></code>),
<code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> ne modifiera donc pas les en-t�tes.</p>
<p>Au moment o� ces lignes sont �crites, cette fonctionnalit� a �t�
tr�s peu test�e, car les modules d'usage courant ont �t� con�us pour
fonctionner avec httpd 2.0. Les modules qui l'utilisent devront donc
l'exp�rimenter avec pr�cautions.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="addoutputfilterbytype" id="addoutputfilterbytype">Directive</a> <a name="AddOutputFilterByType" id="AddOutputFilterByType">AddOutputFilterByType</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>assigne un filtre en sortie pour un type de m�dia
particulier</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AddOutputFilterByType <var>filtre</var>[;<var>filtre</var>...]
<var>type_de_m�dia</var> [<var>type_de_m�dia</var>] ...</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_filter</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit�:</a></th><td>Pr�sentait de s�v�res limitations avant d'�tre d�plac� dans
<code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> dans la version 2.3.7</td></tr>
</table>
<p>Cette directive active un <a href="../filter.html">filtre</a> en sortie particulier pour une
requ�te en fonction du <a class="glossarylink" href="../glossary.html#type de m�dia" title="voir glossaire">type de m�dia</a> de la r�ponse.</p>
<p>L'exemple suivant active le filtre <code>DEFLATE</code> qui est
fourni par le module <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code>. Il va compresser
toute sortie dont le type MIME est <code>text/html</code> ou
<code>text/plain</code> avant de l'envoyer au client.</p>
<pre class="prettyprint lang-config">AddOutputFilterByType DEFLATE text/html text/plain</pre>
<p>Si vous voulez assigner plusieurs filtres au contenu, leurs noms
doivent �tre s�par�s par des points-virgules. On peut aussi utiliser
une directive <code class="directive">AddOutputFilterByType</code> pour
chacun des filtres � assigner.</p>
<p>La configuration ci-dessous impose le traitement de toute sortie
de script dont le type MIME est <code>text/html</code> en premier
lieu par le filtre <code>INCLUDES</code>, puis par le filtre
<code>DEFLATE</code>.</p>
<pre class="prettyprint lang-config"><Location "/cgi-bin/">
Options Includes
AddOutputFilterByType INCLUDES;DEFLATE text/html
</Location></pre>
<h3>Voir aussi</h3>
<ul>
<li><code class="directive"><a href="../mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code></li>
<li><code class="directive"><a href="../mod/core.html#setoutputfilter">SetOutputFilter</a></code></li>
<li><a href="../filter.html">Les filtres</a></li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="filterchain" id="filterchain">Directive</a> <a name="FilterChain" id="FilterChain">FilterChain</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure la cha�ne de filtrage</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>FilterChain [+=-@!]<var>nom_filtre</var> <var>...</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Options</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_filter</td></tr>
</table>
<p>Cette directive permet de configurer une cha�ne de filtrage
compos�e de filtres d�clar�s. <code class="directive">FilterChain</code>
accepte un nombre illimit� d'arguments, chacun d'entre eux �tant
pr�c�d� d'un caract�re de contr�le unique qui d�termine l'action �
entreprendre :</p>
<dl>
<dt><code>+<var>nom filtre</var></code></dt>
<dd>Ajoute<var>nom filtre</var> � la fin de la cha�ne de filtrage</dd>
<dt><code>@<var>nom filtre</var></code></dt>
<dd>Ajoute <var>nom filtre</var> au d�but de la cha�ne de filtrage</dd>
<dt><code>-<var>nom filtre</var></code></dt>
<dd>Supprime <var>nom filtre</var> de la cha�ne de filtrage</dd>
<dt><code>=<var>nom filtre</var></code></dt>
<dd>Supprime tous les filtres de la cha�ne de filtrage existante et
les remplace par <var>nom filtre</var></dd>
<dt><code>!</code></dt>
<dd>Supprime tous les filtres de la cha�ne de filtrage existante</dd>
<dt><code><var>nom filtre</var></code></dt>
<dd>�quivalent � <code>+<var>nom filtre</var></code></dd>
</dl>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="filterdeclare" id="filterdeclare">Directive</a> <a name="FilterDeclare" id="FilterDeclare">FilterDeclare</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D�clare un filtre intelligent</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>FilterDeclare <var>nom_filtre</var> <var>[type]</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Options</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_filter</td></tr>
</table>
<p>Cette directive permet de d�clarer un filtre en sortie associ� �
un en-t�te ou une variable d'environnement qui d�terminera les
conditions de son ex�cution. Le premier argument est le <var>nom du
filtre</var> destin� � �tre utilis� dans les directives <code class="directive"><a href="#filterprovider">FilterProvider</a></code>, <code class="directive"><a href="#filterchain">FilterChain</a></code> et <code class="directive"><a href="#filterprotocol">FilterProtocol</a></code>.</p>
<p>Le dernier argument (optionnel) est le type du filtre, et peut
prendre les valeurs de <code>ap_filter_type</code>, � savoir
<code>RESOURCE</code> (valeur par d�faut), <code>CONTENT_SET</code>,
<code>PROTOCOL</code>, <code>TRANSCODE</code>,
<code>CONNECTION</code> ou <code>NETWORK</code>.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="filterprotocol" id="filterprotocol">Directive</a> <a name="FilterProtocol" id="FilterProtocol">FilterProtocol</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>V�rifie le respect du protocole HTTP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>FilterProtocol <var>nom_filtre</var> [<var>nom_fournisseur</var>]
<var>drapeaux_protocole</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Options</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_filter</td></tr>
</table>
<p>Cette directive permet � <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> de s'assurer
qu'un filtre ne s'ex�cutera pas s'il ne doit pas le faire, et que
les en-t�tes de la r�ponse HTTP sont d�finis correctement en tenant
compte des effets du filtre.</p>
<p>Cette directive se pr�sente sous deux formes. Avec trois
arguments, elle s'applique de mani�re sp�cifique � un <var>nom
filtre</var> et un <var>nom fournisseur</var> pour ce filtre. Avec
deux arguments, elle s'applique � un <var>nom filtre</var> pour
<em>tout</em> fournisseur qu'il actionne.</p>
<p>Les drapeaux sp�cifi�s sont fusionn�s avec les drapeaux que les
fournisseurs sous-jacents ont �ventuellement enregistr�s avec
<code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code>. Par exemple, un filtre peut avoir
sp�cifi� en interne un drapeau �quivalent � <code>change=yes</code>,
mais une configuration particuli�re du module peut le surcharger
en sp�cifiant <code>change=no</code>.
</p>
<p><var>drapeaux_protocole</var> peut contenir un ou plusieurs
drapeaux parmi les suivants :</p>
<dl>
<dt><code>change=yes|no</code></dt>
<dd>Indique si le filtre doit modifier le contenu, y compris �ventuellement sa
taille</dd>
<dt><code>change=1:1</code></dt>
<dd>Le filtre modifie le contenu, mais pas sa taille</dd>
<dt><code>byteranges=no</code></dt>
<dd>Le filtre ne peut pas traiter de r�ponses � des sous-requ�tes et
n�cessite des r�ponses compl�tes en entr�e</dd>
<dt><code>proxy=no</code></dt>
<dd>Le filtre ne doit pas s'ex�cuter dans un contexte de mandataire</dd>
<dt><code>proxy=transform</code></dt>
<dd>Le filtre transforme la r�ponse de mani�re incompatible avec
l'en-t�te HTTP <code>Cache-Control: no-transform</code></dd>
<dt><code>cache=no</code></dt>
<dd>Le filtre fait en sorte que la sortie ne puisse pas �tre mise en
cache (par exemple en introduisant des modifications de contenu
al�atoires)</dd>
</dl>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="filterprovider" id="filterprovider">Directive</a> <a name="FilterProvider" id="FilterProvider">FilterProvider</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enregistre un filtre de contenu</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>FilterProvider <var>nom_filtre</var> <var>nom_fournisseur</var>
<var>expression</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Options</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_filter</td></tr>
</table>
<p>Cette directive permet d'associer un <em>fournisseur</em> au
filtre intelligent. Le fournisseur sera invoqu� si et seulement si
l'<var>expression</var> est �valu�e vraie lorsque le s�lecteur de
filtre est appel� pour la premi�re fois.</p>
<p>
<var>nom fournisseur</var> doit avoir �t� enregistr� au cours du
chargement d'un module � l'aide de
<code>ap_register_output_filter</code>.
</p>
<p><var>expression</var> est une expression <a href="../expr.html">ap_expr</a>.</p>
<h3>Voir aussi</h3>
<ul>
<li><a href="../expr.html">Les expressions dans le serveur HTTP
Apache</a>, pour une r�f�rence compl�te et d'autres exemples.</li>
<li><code class="module"><a href="../mod/mod_include.html">mod_include</a></code></li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="filtertrace" id="filtertrace">Directive</a> <a name="FilterTrace" id="FilterTrace">FilterTrace</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Obtention d'informations de d�bogage/diagnostique en
provenance de <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code></td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>FilterTrace <var>nom_filtre</var> <var>niveau</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_filter</td></tr>
</table>
<p>Cette directive permet d'obtenir des informations de d�bogage en
provenance de <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code>. Elle est con�ue pour
aider � tester et d�boguer les fournisseurs (ou modules de filtrage)
; elle peut aussi apporter une aide � l'utilisation de
<code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> lui-m�me.</p>
<p>La sortie de d�bogage d�pend de la d�finition d'argument
<var>level</var> :</p>
<dl>
<dt><code>0</code> (valeur par d�faut)</dt>
<dd>Aucune information de d�bogage n'est g�n�r�e.</dd>
<dt><code>1</code></dt>
<dd><code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> va enregistrer les ensembles de
conteneurs de donn�es (buckets and brigades) qui traversent le
filtre dans le journal des erreurs, avant que le fournisseur ne les
traite. Ces informations sont similaires � celles g�n�r�es par <a href="http://apache.webthing.com/mod_diagnostics/">mod_diagnostics</a>.
</dd>
<dt><code>2</code> (pas encore impl�ment�)</dt>
<dd>Ce niveau permettra d'enregistrer l'ensemble des donn�es qui
traversent le filtre dans un fichier temporaire avant de les envoyer
au fournisseur. <strong>Pour un d�bogage mono-utilisateur
seulement</strong> ; l'enregistrement des donn�es concernant
plusieurs requ�tes simultann�es ne sera pas support�.</dd>
</dl>
</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_filter.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../fr/mod/mod_filter.html" title="Fran�ais"> fr </a></p>
</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />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 <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
var comments_identifier = 'http://httpd.apache.org/docs/2.4/mod/mod_filter.html';
(function(w, d) {
if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
d.write('<div id="comments_thread"><\/div>');
var s = d.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
(d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
}
else {
d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
}
})(window, document);
//--><!]]></script></div><div id="footer">
<p class="apache">Copyright 2015 The Apache Software Foundation.<br />Autoris� sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
}
//--><!]]></script>
</body></html>