1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171
|
<?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><!--
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.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_substitute</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_substitute.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../fr/mod/mod_substitute.html" title="Franais"> fr </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"><h3 class="directives">Directives</h3>
<ul id="toc">
<li><img alt="" src="../images/down.gif" /> <a href="#substitute">Substitute</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="directive-section"><h2><a name="Substitute" id="Substitute">Substitute</a> <a name="substitute" id="substitute">Directive</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>, mod_substitute 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>, mod_substitute 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"><Location />
AddOutputFilterByType SUBSTITUTE text/html
Substitute s/foo/bar/ni
</Location></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"><Location />
AddOutputFilterByType SUBSTITUTE text/html
Substitute "s|<BR */?>|<br />|i"
</Location></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"><Location />
AddOutputFilterByType SUBSTITUTE text/html
# "foo=k,bar=k" -> "foo/bar=k"
Substitute "s|foo=(\w+),bar=\1|foo/bar=$1"
</Location></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_substutite</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>Substitute</code> se charge son tour de la modification de
la rponse HTML.</p>
</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_substitute.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../fr/mod/mod_substitute.html" title="Franais"> 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_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 2014 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>
|