HEX
Server: Apache
System: Linux server.y-p01.co.uk 3.10.0-1160.144.1.el7.tuxcare.els3.x86_64 #1 SMP Fri Mar 6 13:52:53 UTC 2026 x86_64
User: calderca (1008)
PHP: 8.1.34
Disabled: NONE
Upload Files
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="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.4</a> &gt; <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">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_filter.html" title="Fran�ais">&nbsp;fr&nbsp;</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 (&amp;&amp; / ||) 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'"
&lt;Location "/image-filter"&gt;
    FilterChain unpack downsample repack
&lt;/Location&gt;</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">&lt;Location "/cgi-bin/"&gt;
    Options Includes
    AddOutputFilterByType INCLUDES;DEFLATE text/html
&lt;/Location&gt;</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">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_filter.html" title="Fran�ais">&nbsp;fr&nbsp;</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&amp;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>