mirror of
https://github.com/apache/httpd.git
synced 2025-08-10 02:56:11 +00:00

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1835738 13f79535-47bb-0310-9956-ffa450edef68
111 lines
4.1 KiB
Plaintext
111 lines
4.1 KiB
Plaintext
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
|
|
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
|
|
<!-- English Revision: 1673945 -->
|
|
<!-- French translation : Lucien GENTIS -->
|
|
<!-- Reviewed by : Vincent Deffontaines -->
|
|
|
|
<!--
|
|
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.
|
|
-->
|
|
|
|
<manualpage metafile="proxy.xml.meta">
|
|
<parentdocument href="./">Rewrite</parentdocument>
|
|
|
|
<title>Utilisation de mod_rewrite comme mandataire</title>
|
|
|
|
<summary>
|
|
|
|
<p>Ce document est un complément de la <a
|
|
href="../mod/mod_rewrite.html">documentation de référence</a> du module
|
|
<module>mod_rewrite</module>. Il décrit comment utiliser le drapeau [P]
|
|
de la directive RewriteRule pour mandater un contenu vers un autre
|
|
serveur. Plusieurs recettes décrivant des scénarios courants sont
|
|
fournies.</p>
|
|
|
|
</summary>
|
|
<seealso><a href="../mod/mod_rewrite.html">Documentation du module</a></seealso>
|
|
<seealso><a href="intro.html">Introduction à mod_rewrite</a></seealso>
|
|
<seealso><a href="remapping.html">Redirection et remise en
|
|
correspondance</a></seealso>
|
|
<seealso><a href="access.html">Contrôle d'accès</a></seealso>
|
|
<seealso><a href="vhosts.html">Serveurs virtuels</a></seealso>
|
|
<!--<seealso><a href="proxy.html">Serveurs mandataires</a></seealso>-->
|
|
<seealso><a href="rewritemap.html">Utilisation de RewriteMap</a></seealso>
|
|
<seealso><a href="advanced.html">Techniques avancées</a></seealso>
|
|
<seealso><a href="avoid.html">Quand ne pas utiliser mod_rewrite</a></seealso>
|
|
|
|
<section id="dynamic-proxy">
|
|
|
|
<title>Mandater du contenu avec mod_rewrite</title>
|
|
|
|
<dl>
|
|
<dt>Description :</dt>
|
|
|
|
<dd>
|
|
<p>
|
|
mod_rewrite implémente le drapeau [P] qui permet de passer des URLs,
|
|
via mod_proxy, à un autre serveur. Deux exemples sont fournis ici.
|
|
Dans le premier, une URL est passée directement à un autre serveur,
|
|
et servie comme si c'était une URL locale. Dans le deuxième, nous
|
|
mandatons un contenu manquant vers un serveur d'arrière-plan.</p>
|
|
</dd>
|
|
|
|
<dt>Solution :</dt>
|
|
|
|
<dd>
|
|
<p>Pour passer une URL à un autre serveur, on utilise le drapeau
|
|
[P] comme suit :</p>
|
|
|
|
<highlight language="config">
|
|
RewriteEngine on
|
|
RewriteBase "/produits/"
|
|
RewriteRule "^widget/(.*)$" "http://produits.example.com/widget/$1" [P]
|
|
ProxyPassReverse "/produits/objet/" "http://produits.example.com/objet/"
|
|
</highlight>
|
|
|
|
<p>Dans le deuxième exemple, nous ne mandatons la requête que si nous
|
|
ne trouvons pas la ressource localement. Ceci peut s'avérer très
|
|
utile lorsque vous effectuez une migration d'un serveur vers un
|
|
autre, et que vous n'êtes pas certain que tout le contenu a déjà été
|
|
migré.</p>
|
|
|
|
<highlight language="config">
|
|
RewriteCond "%{REQUEST_FILENAME}" !-f
|
|
RewriteCond "%{REQUEST_FILENAME}" !-d
|
|
RewriteRule "^/(.*)" "http://ancien.exemple.com/$1" [P]
|
|
ProxyPassReverse "/" "http://ancien.exemple.com/"
|
|
</highlight>
|
|
</dd>
|
|
|
|
<dt>Discussion :</dt>
|
|
|
|
<dd><p>Dans les deux cas, on ajoute une directive <directive
|
|
module="mod_proxy">ProxyPassReverse</directive> afin de s'assurer
|
|
que toute redirection en provenance du serveur d'arrière-plan est
|
|
renvoyée correctement au client.</p>
|
|
|
|
<p>Chaque fois que cela est possible, préférez l'utilisation de la
|
|
directive <directive module="mod_proxy">ProxyPass</directive> ou
|
|
<directive module="mod_proxy">ProxyPassMatch</directive> à
|
|
mod_rewrite.</p>
|
|
</dd>
|
|
</dl>
|
|
|
|
</section>
|
|
|
|
</manualpage>
|