mirror of
https://github.com/apache/httpd.git
synced 2025-11-02 06:53:27 +03:00
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1815677 13f79535-47bb-0310-9956-ffa450edef68
215 lines
8.5 KiB
Plaintext
215 lines
8.5 KiB
Plaintext
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
|
|
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
|
|
<!-- English Revision : 1815480 -->
|
|
<!-- French translation : Lucien GENTIS -->
|
|
|
|
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one or more
|
|
contributor license agreements. See the NOTICE file distributed with
|
|
this work for additional information regarding copyright ownership.
|
|
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
(the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
<modulesynopsis metafile="mod_substitute.xml.meta">
|
|
|
|
<name>mod_substitute</name>
|
|
<description>Effectue des opérations de recherche/remplacement sur les
|
|
corps de réponses</description>
|
|
<status>Extension</status>
|
|
<sourcefile>mod_substitute.c</sourcefile>
|
|
<identifier>substitute_module</identifier>
|
|
|
|
<summary>
|
|
<p><module>mod_substitute</module> fournit un mécanisme permettant
|
|
d'effectuer des substitutions de chaînes fixes ou d'expressions
|
|
rationnelles sur les corps de réponses.</p>
|
|
</summary>
|
|
|
|
<directivesynopsis>
|
|
<name>Substitute</name>
|
|
<description>Modèle de substition dans le contenu de la
|
|
réponse</description>
|
|
<syntax>Substitute <var>s/modèle/substitution/[infq]</var></syntax>
|
|
<contextlist><context>directory</context>
|
|
<context>.htaccess</context></contextlist>
|
|
<override>FileInfo</override>
|
|
|
|
<usage>
|
|
<p>La directive <directive>Substitute</directive> 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>
|
|
<!-- Paragraphe suivant à améliorer par un connaisseur de ce
|
|
module -->
|
|
<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>
|
|
<!-- Paragraphe suivant à améliorer par un connaisseur de ce
|
|
module -->
|
|
<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.
|
|
</p>
|
|
|
|
<example><title>Exemple</title>
|
|
<highlight language="config">
|
|
<Location "/">
|
|
AddOutputFilterByType SUBSTITUTE text/html
|
|
Substitute "s/foo/bar/ni"
|
|
</Location>
|
|
</highlight>
|
|
</example>
|
|
|
|
<p>Si le modèle ou la chaîne de substitution contient un caractère
|
|
slash '/', il faut utiliser un autre délimiteur :</p>
|
|
|
|
<example><title>Exemple d'utilisation d'un délimiteur
|
|
alternatif</title>
|
|
<highlight language="config">
|
|
<Location "/">
|
|
AddOutputFilterByType SUBSTITUTE text/html
|
|
Substitute "s|<BR */?>|<br />|i"
|
|
</Location>
|
|
</highlight>
|
|
</example>
|
|
|
|
<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>
|
|
<example><title>Exemple d'utilisation de références arrières et de captures</title>
|
|
<highlight language="config">
|
|
<Location "/">
|
|
AddOutputFilterByType SUBSTITUTE text/html
|
|
# "foo=k,bar=k" -> "foo/bar=k"
|
|
Substitute "s|foo=(\w+),bar=\1|foo/bar=$1"
|
|
</Location>
|
|
</highlight>
|
|
</example>
|
|
|
|
<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>
|
|
|
|
<example><title>Réécriture des URLs intégrées à un contenu mandaté</title>
|
|
<highlight language="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"
|
|
</highlight>
|
|
</example>
|
|
|
|
<p>La directive <directive
|
|
module="mod_proxy">ProxyPassReverse</directive> modifie tout en-tête
|
|
<code>Location</code> (redirection) envoyé par le serveur
|
|
d'arrière-plan et, dans cet exemple, la directive
|
|
<directive>Substitute</directive> se charge à son tour de la modification de
|
|
la réponse HTML.</p>
|
|
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>SubstituteMaxLineLength</name>
|
|
<description>Définit la longueur de ligne maximale</description>
|
|
<syntax>SubstituteMaxLineLength <var>octets</var>(b|B|k|K|m|M|g|G)</syntax>
|
|
<default>SubstituteMaxLineLength 1m</default>
|
|
<contextlist><context>directory</context>
|
|
<context>.htaccess</context></contextlist>
|
|
<override>FileInfo</override>
|
|
<compatibility>Disponible à partir de la version 2.4.11 du serveur HTTP
|
|
Apache</compatibility>
|
|
|
|
<usage>
|
|
<p>La taille de la ligne traitée par <module>mod_substitute</module>
|
|
est limitée afin de restreindre l'utilisation des ressources
|
|
mémoire. La directive <directive>SubstituteMaxLineLength</directive>
|
|
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>
|
|
|
|
<example><title>Example</title>
|
|
<highlight language="config">
|
|
<Location "/">
|
|
AddOutputFilterByType SUBSTITUTE text/html
|
|
SubstituteMaxLineLength 10m
|
|
Substitute "s/foo/bar/ni"
|
|
</Location>
|
|
</highlight>
|
|
</example>
|
|
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>SubstituteInheritBefore</name>
|
|
<description>Modifie l'ordre de fusion des modèles hérités</description>
|
|
<syntax>SubstituteInheritBefore on|off</syntax>
|
|
<default>SubstituteInheritBefore on</default>
|
|
<contextlist><context>directory</context>
|
|
<context>.htaccess</context></contextlist>
|
|
<override>FileInfo</override>
|
|
<compatibility>Disponible à partir de la version 2.4.17 du serveur HTTP
|
|
Apache</compatibility>
|
|
|
|
<usage>
|
|
<p>Cette directive permet de définir si l'on applique les modèles
|
|
<directive module="mod_substitute">Substitute</directive> 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 <directive>SubstituteInheritBefore</directive> est
|
|
elle-même héritée, et les contextes qui en héritent (ceux qui ne
|
|
définissent pas explicitement leur propre directive
|
|
<directive>SubstituteInheritBefore</directive>) appliqueront donc
|
|
l'ordre de fusion défini le plus proche.</p>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
</modulesynopsis>
|