<?xml version="1.0" encoding="UTF-8"?>
<!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=UTF-8" http-equiv="Content-Type" />
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>mod_substitute - Serveur HTTP Apache Version 2.5</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/quickreference.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 HTTP Apache Version 2.5</p>
<img alt="" src="../images/feather.png" /></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.5</a> &gt; <a href="./">Modules</a></div>
<div id="page-content">
<div id="preamble"><h1>Module Apache mod_substitute</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_substitute.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_substitute.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>Effectue des opérations de recherche/remplacement sur les
corps de réponses</td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>substitute_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_substitute.c</td></tr></table>
<h3>Sommaire</h3>

    <p><code class="module"><a href="../mod/mod_substitute.html">mod_substitute</a></code> fournit un mécanisme permettant
    d'effectuer des substitutions de chaînes fixes ou d'expressions
    rationnelles sur les corps de réponses.</p>
</div>
<div id="quickview"><h3 class="directives">Directives</h3>
<ul id="toc">
<li><img alt="" src="../images/down.gif" /> <a href="#substitute">Substitute</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#substituteinheritbefore">SubstituteInheritBefore</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#substitutemaxlinelength">SubstituteMaxLineLength</a></li>
</ul>
<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&amp;list_id=144532&amp;product=Apache%20httpd-2&amp;query_format=specific&amp;order=changeddate%20DESC%2Cpriority%2Cbug_severity&amp;component=mod_substitute">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&amp;component=mod_substitute">Signaler un bug</a></li></ul><h3>Voir aussi</h3>
<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="directive-section"><h2><a name="substitute" id="substitute">Directive</a> <a name="Substitute" id="Substitute">Substitute</a> <a title="Lien permanent" href="#substitute" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Modèle de substition dans le contenu de la
réponse</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Substitute <var>s/modèle/substitution/[infq]</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_substitute</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Les valeurs de substitution "expr=" ont été ajoutées à partir de
la version 2.5.1</td></tr>
</table>
    <p>La directive <code class="directive">Substitute</code> permet de
    spécifier un modèle de recherche/remplacement à appliquer au corps
    de la réponse.</p>

    <p>La signification du modèle peut être modifiée via toute
    combinaison de ces drapeaux :</p>

    <dl>
        <dt><code>i</code></dt>
        <dd>Effectue une comparaison sans tenir compte de la casse.</dd>
        <dt><code>n</code></dt>
        <dd>Par défaut, le modèle est traité en tant qu'expression
	rationnelle. Le drapeau <code>n</code> force le traitement du
	modèle en tant que chaîne fixe.</dd>
        <dt><code>f</code></dt>
	
        <dd>Avec le drapeau <code>f</code>, <code>mod_substitute</code> met à plat le
	résultat d'une substitution (les conteneurs ou buckets ne sont
	pas dissociés), ce qui permet à d'éventuelles substitutions
	ultérieures de s'effectuer sur cette dernière. C'est le
	comportement par défaut.</dd>
        <dt><code>q</code></dt>
	
        <dd>Avec le drapeau <code>q</code>, <code>mod_substitute</code> dissocie les
	conteneurs (ou buckets) après chaque substitution. Ceci peut
	améliorer la rapidité de la réponse et diminuer la quantité de
	mémoire utilisée, mais ne doit être utilisé que s'il n'existe
	aucune possibilité pour que le résultat d'une substitution ne
	corresponde au modèle ou à l'expression rationnelle d'une
	substitution ultérieure.</dd>
    </dl>

    <p><var>substitution</var> peut contenir du texte et des références arrières
    d'expressions rationnelles. Si la valeur de substitution commence par la
    chaîne <code>expr=</code>, elle est interprétée comme une <a href="../expr.html">expression rationnelle</a>, ce qui permet d'utiliser des
    variables d'environnement et des valeurs d'en-têtes.
    </p>

    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">&lt;Location "/"&gt;
    AddOutputFilterByType SUBSTITUTE text/html
    Substitute "s/foo/bar/ni"
&lt;/Location&gt;</pre>
</div>

    <p>Le caractère utilisé pour séparer (ou "délimiter") les différentes partie
    de la valeur de substitution est référencé sous le nom de "délimiteur", et
    il s'agit le plus souvent d'un "slash".</p>

    <p>Si le modèle ou la chaîne de substitution contient un caractère
    slash '/', il est possible d'utiliser un autre délimiteur afin de rendre la
    directive plus lisible :</p>

    <div class="example"><h3>Exemple d'utilisation d'un délimiteur
    alternatif</h3><pre class="prettyprint lang-config">&lt;Location "/"&gt;
    AddOutputFilterByType SUBSTITUTE text/html
    Substitute "s|&lt;BR */?&gt;|&lt;br /&gt;|i"
&lt;/Location&gt;</pre>
</div>

    <p>Lorsqu'on utilise des expressions rationnelles, on peut insérer
    des références arrières dans les opérations de comparaison et de
    substitution, comme illustré dans l'exemple suivant :</p>
    <div class="example"><h3>Exemple d'utilisation de références arrières et de captures</h3><pre class="prettyprint lang-config">&lt;Location "/"&gt;
    AddOutputFilterByType SUBSTITUTE text/html
    # "foo=k,bar=k" -&gt; "foo/bar=k"
    Substitute "s|foo=(\w+),bar=\1|foo/bar=$1|"
&lt;/Location&gt;</pre>
</div>

    <p>Lorsque la valeur de <var>substitution</var> est spécifiée sous la forme
    d'une <a href="../expr.html">expression rationnelle</a>, les références
    arrières doivent être échappées avec un backslash ('\') comme illustré dans
    l'exemple suivant :</p> 
    <div class="example"><h3>Exemple de substitution sous forme d'expression rationnelle</h3><pre class="prettyprint lang-config">&lt;Location "/"&gt;
    AddOutputFilterByType SUBSTITUTE text/html
    Substitute "s/example.com/expr=%{HTTP:HOST}/i"
    Substitute "s/Hello, (\S+)/expr=Hello from %{REQUEST_URI}, \$1/i"
&lt;/Location&gt;</pre>
</div>

    <div class="warning"><h3>Expressions rationnelles et mise en cache</h3>
    <p>La prudence s'impose lorsqu'on effectue des substitutions qui font
    références à des en-têtes de requêtes HTTP. En effet, comme ce module agit
    après l'envoi des en-têtes de la réponse, l'<a href="../expr.html">interpréteur d'expression</a> n'est pas en mesure
    d'ajouter les en-têtes de la requête HTTP référencés à l'en-tête Vary de
    sortie.</p>
    </div>

    <p>Un scénario courant d'utilisation de <code>mod_substitute</code>
    est la situation où un serveur frontal mandate des requêtes pour un
    serveur d'arrière-plan qui renvoie des documents HTML contenant des
    URLs intégrées codées en dur qui font référence à ce serveur
    d'arrière-plan. Ces URLs ne fonctionnent pas pour l'utilisateur
    final car le serveur d'arrière-plan est hors d'atteinte.</p>

    <p>On peut, dans ce cas, utiliser <code>mod_substitute</code> pour
    réécrire ces URLs afin qu'elles soit utilisables dans la partie
    située derrière le mandataire :</p>

    <div class="example"><h3>Réécriture des URLs intégrées à un contenu mandaté</h3><pre class="prettyprint lang-config">ProxyPass        "/blog/" "http://internal.blog.example.com/"
ProxyPassReverse "/blog/" "http://internal.blog.example.com/"

Substitute "s|http://internal.blog.example.com/|http://www.example.com/blog/|i"</pre>
</div>

    <p>La directive <code class="directive"><a href="../mod/mod_proxy.html#proxypassreverse">ProxyPassReverse</a></code> modifie tout en-tête
    <code>Location</code> (redirection) envoyé par le serveur
    d'arrière-plan et, dans cet exemple, la directive
    <code class="directive">Substitute</code> se charge à son tour de la modification de
    la réponse HTML.</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="substituteinheritbefore" id="substituteinheritbefore">Directive</a> <a name="SubstituteInheritBefore" id="SubstituteInheritBefore">SubstituteInheritBefore</a> <a title="Lien permanent" href="#substituteinheritbefore" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Modifie l'ordre de fusion des modèles hérités</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SubstituteInheritBefore on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SubstituteInheritBefore on</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_substitute</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.17 du serveur HTTP
Apache</td></tr>
</table>
    <p>Cette directive permet de définir si l'on applique les modèles
<code class="directive"><a href="#substitute">Substitute</a></code> hérités en premier
(valeur <code>on</code>), ou après ceux du
contexte courant (valeur <code>off</code>). Sa valeur est maintenant
définie par défaut à <code>on</code> ; il est cependant possible de
restaurer le comportement des versions 2.4 et antérieures du serveur qui
était équivalent à une définition à <code>off</code> de cette directive.
La valeur de la directive <code class="directive">SubstituteInheritBefore</code> est
elle-même héritée, et les contextes qui en héritent (ceux qui ne
définissent pas explicitement leur propre directive
<code class="directive">SubstituteInheritBefore</code>) appliqueront donc
l'ordre de fusion défini le plus proche.</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="substitutemaxlinelength" id="substitutemaxlinelength">Directive</a> <a name="SubstituteMaxLineLength" id="SubstituteMaxLineLength">SubstituteMaxLineLength</a> <a title="Lien permanent" href="#substitutemaxlinelength" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit la longueur de ligne maximale</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SubstituteMaxLineLength <var>octets</var>(b|B|k|K|m|M|g|G)</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SubstituteMaxLineLength 1m</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_substitute</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.11 du serveur HTTP
Apache</td></tr>
</table>
    <p>La taille de la ligne traitée par <code class="module"><a href="../mod/mod_substitute.html">mod_substitute</a></code>
    est limitée afin de restreindre l'utilisation des ressources
    mémoire. La directive <code class="directive">SubstituteMaxLineLength</code>
    permet de définir cette limite. La valeur de la limite peut être
    spécifiée sous la forme d'un nombre d'octets, et peut être suffixée
    par une des lettres <code>b</code>, <code>B</code>, <code>k</code>,
    <code>K</code>, <code>m</code>, <code>M</code>, <code>g</code> ou
    <code>G</code> pour fournir une valeur respectivement en octets,
    kiloOctets, mégaOctets ou gigaOctets.</p>

    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">&lt;Location "/"&gt;
    AddOutputFilterByType SUBSTITUTE text/html
    SubstituteMaxLineLength 10m
    Substitute "s/foo/bar/ni"
&lt;/Location&gt;</pre>
</div>


</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_substitute.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_substitute.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 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 Libera.chat, or sent to our <a href="https://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/trunk/mod/mod_substitute.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 2025 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/quickreference.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>