mod_substitute.html.fr 15 KB
Newer Older
powelld's avatar
powelld committed
<?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_substitute - 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.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.4</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="Franais">&nbsp;fr&nbsp;</a></p>
</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Effectue des oprations de recherche/remplacement sur les
corps de rponses</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">IdentificateurdeModule:</a></th><td>substitute_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">FichierSource:</a></th><td>mod_substitute.c</td></tr>
<tr><th><a href="module-dict.html#Compatibility">Compatibilit:</a></th><td>Disponible depuis la version 2.2.7
du serveur HTTP Apache</td></tr></table>
<h3>Sommaire</h3>

    <p><code class="module"><a href="../mod/mod_substitute.html">mod_substitute</a></code> fournit un mcanisme permettant
    d'effectuer des substitutions de chanes fixes ou d'expressions
    rationnelles sur les corps de rponses.</p>
</div>
<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><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">Problmes 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></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Modle de substition dans le contenu de la
rponse</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Substitute <var>s/modle/substitution/[infq]</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_substitute</td></tr>
</table>
    <p>La directive <code class="directive">Substitute</code> permet de
    spcifier un modle de recherche/remplacement  appliquer au corps
    de la rponse.</p>

    <p>La signification du modle peut tre modifie 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 dfaut, le modle est trait en tant qu'expression
	rationnelle. Le drapeau <code>n</code> force le traitement du
	modle en tant que chane fixe.</dd>
        <dt><code>f</code></dt>
	
        <dd>Avec le drapeau <code>f</code>, <code>mod_substitute</code> met  plat le
	rsultat d'une substitution (les conteneurs ou buckets ne sont
	pas dissocis), ce qui permet  d'ventuelles substitutions
	ultrieures de s'effectuer sur cette dernire. C'est le
	comportement par dfaut.</dd>
        <dt><code>q</code></dt>
	
        <dd>Avec le drapeau <code>q</code>, <code>mod_substitute</code> dissocie les
	conteneurs (ou buckets) aprs chaque substitution. Ceci peut
	amliorer la rapidit de la rponse et diminuer la quantit de
	mmoire utilise, mais ne doit tre utilis que s'il n'existe
	aucune possibilit pour que le rsultat d'une substitution ne
	corresponde au modle ou  l'expression rationnelle d'une
	substitution ultrieure.</dd>
    </dl>

    <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>Si le modle ou la chane de substitution contient un caractre
    slash '/', il faut utiliser un autre dlimiteur :</p>

    <div class="example"><h3>Exemple d'utilisation d'un dlimiteur
    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 insrer
    des rfrences arrires dans les oprations de comparaison et de
    substitution, comme illustr dans l'exemple suivant :</p>
    <div class="example"><h3>Exemple d'utilisation de rfrences arrires 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>Un scnario courant d'utilisation de <code>mod_substitute</code>
    est la situation o un serveur frontal mandate des requtes pour un
    serveur d'arrire-plan qui renvoie des documents HTML contenant des
    URLs intgres codes en dur qui font rfrence  ce serveur
    d'arrire-plan. Ces URLs ne fonctionnent pas pour l'utilisateur
    final car le serveur d'arrire-plan est hors d'atteinte.</p>

    <p>On peut, dans ce cas, utiliser <code>mod_substitute</code> pour
    rcrire ces URLs afin qu'elles soit utilisables dans la partie
    situe derrire le mandataire :</p>

    <div class="example"><h3>Rcriture des URLs intgres  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-tte
    <code>Location</code> (redirection) envoy par le serveur
    d'arrire-plan et, dans cet exemple, la directive
    <code class="directive">Substitute</code> se charge  son tour de la modification de
    la rponse 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></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Modifie l'ordre de fusion des modles hrits</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">Dfaut:</a></th><td><code>SubstituteInheritBefore on</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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>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 dfinir si l'on applique les modles
<code class="directive"><a href="#substitute">Substitute</a></code> hrits en premier
(valeur <code>on</code>), ou aprs ceux du
contexte courant (valeur <code>off</code>). La valeur de la directive
<code class="directive">SubstituteInheritBefore</code> est
elle-mme hrite, et les contextes qui en hritent (ceux qui ne
dfinissent pas explicitement leur propre directive
<code class="directive">SubstituteInheritBefore</code>) appliqueront donc
l'ordre de fusion dfini 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></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dfinit 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">Dfaut:</a></th><td><code>SubstituteMaxLineLength 1m</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire, .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>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 traite par <code class="module"><a href="../mod/mod_substitute.html">mod_substitute</a></code>
    est limite afin de restreindre l'utilisation des ressources
    mmoire. La directive <code class="directive">SubstituteMaxLineLength</code>
    permet de dfinir cette limite. La valeur de la limite peut tre
    spcifie sous la forme d'un nombre d'octets, et peut tre suffixe
    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, mgaOctets 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="Franais">&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_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 2017 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>