Commit 7140e3d6 authored by Lucien Gentis's avatar Lucien Gentis
Browse files

XML updates.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1737512 13f79535-47bb-0310-9956-ffa450edef68
parent ccba9a3f
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
<?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: 1733954 -->
<!-- English Revision: 1736594 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->

@@ -1380,12 +1380,12 @@ host</context>
    d'expression. Exemples :</p>

    <highlight language="config">
ErrorDocument 500 http://foo.example.com/cgi-bin/tester
ErrorDocument 404 /cgi-bin/bad_urls.pl
ErrorDocument 500 http://example.com/cgi-bin/server-error.cgi
ErrorDocument 404 /errors/bad_urls.php
ErrorDocument 401 /subscription_info.html
ErrorDocument 403 "Sorry can't allow you access today"
ErrorDocument 403 Forbidden!
ErrorDocument 403 /cgi-bin/forbidden.pl?referrer=%{escape:%{HTTP_REFERER}}
ErrorDocument 403 /errors/forbidden.py?referrer=%{escape:%{HTTP_REFERER}}
    </highlight>

    <p>De plus, on peut spécifier la valeur spéciale <code>default</code>
+531 −511

File changed.

Preview size limit exceeded, changes collapsed.

+275 −275

File changed.

Preview size limit exceeded, changes collapsed.

+57 −57
Original line number Diff line number Diff line
<?xml version="1.0"?>
<?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: 1673563:1737464 (outdated) -->
<!-- English Revision: 1737464 -->
<!-- French translation: Fabien Coelho -->
<!-- Updated by Lucien Gentis -->

@@ -34,23 +34,23 @@ de configuration Apache.</description>
<summary>

    <p>Ce module permet d'utiliser des macros dans les fichiers de
    configuration &agrave; l'ex&eacute;cution du serveur HTTP Apache afin de faciliter
    la cr&eacute;ation de nombreux blocs de configuration similaires. Quand le
    serveur d&eacute;marre, les macros sont ex&eacute;cut&eacute;es avec les param&egrave;tres
    fournis, et le r&eacute;sultat obtenu est trait&eacute; au m&ecirc;me titre que le reste
    configuration à l'exécution du serveur HTTP Apache afin de faciliter
    la création de nombreux blocs de configuration similaires. Quand le
    serveur démarre, les macros sont exécutées avec les paramètres
    fournis, et le résultat obtenu est traité au même titre que le reste
    du fichier de configuration.</p>

</summary>

<section id="usage"><title>Utilisation</title>    
<p>On d&eacute;finit une macro &agrave; l'aide des blocs <directive
<p>On définit une macro à l'aide des blocs <directive module="mod_macro"
type="section">Macro</directive> qui contiennent la portion de votre
configuration qui intervient de mani&egrave;re r&eacute;p&eacute;titive, y compris les
variables pour les parties qui devront &ecirc;tre substitu&eacute;es.</p>
configuration qui intervient de manière répétitive, y compris les
variables pour les parties qui devront être substituées.</p>

<p>Par exemple, vous pouvez utiliser une macro pour d&eacute;finir un bloc
<directive type="section">VirtualHost</directive>, afin de pouvoir
d&eacute;finir de nombreux serveurs virtuels similaires :</p>    
<p>Par exemple, vous pouvez utiliser une macro pour définir un bloc
<directive module="core" type="section">VirtualHost</directive>, afin de pouvoir
définir de nombreux serveurs virtuels similaires :</p>    

    <highlight language="config">
&lt;Macro VHost $name $domain&gt;
@@ -66,11 +66,11 @@ d&eacute;finir de nombreux serveurs virtuels similaires :</p>
</highlight>

<p>Comme les directives de configuration httpd, les noms des macros sont
insensibles &agrave; la casse, &agrave; la diff&eacute;rence des variables qui y sont, elles,
insensibles à la casse, à la différence des variables qui y sont, elles,
sensibles.</p>

<p>Vous pouvez alors invoquer cette macro autant de fois que vous le
voulez pour cr&eacute;er des serveurs virtuels </p>
voulez pour créer des serveurs virtuels </p>

<highlight language="config">
Use VHost example example.com
@@ -80,44 +80,44 @@ Use VHost apache apache.org
UndefMacro VHost
    </highlight>

<p>Au d&eacute;marrage du serveur, chacune de ces invocations
<directive>Use</directive> sera remplac&eacute;e par une d&eacute;finition de serveur
virtuel compl&egrave;te, comme d&eacute;crit dans la d&eacute;finition de la
<directive>Macro</directive>.</p>
<p>Au démarrage du serveur, chacune de ces invocations
<directive module="mod_macro">Use</directive> sera remplacée par une définition de serveur
virtuel complète, comme décrit dans la définition de la
<directive module="mod_macro" type="section">Macro</directive>.</p>

<p>La directive <directive>UndefMacro</directive> permet d'&eacute;viter les
conflits de d&eacute;finitions qui pourraient provenir de l'utilisation
ult&eacute;rieure de macros contenant les m&ecirc;mes noms de variables.</p>
<p>La directive <directive module="mod_macro">UndefMacro</directive> permet d'éviter les
conflits de définitions qui pourraient provenir de l'utilisation
ultérieure de macros contenant les mêmes noms de variables.</p>

<p>Vous trouverez une version plus &eacute;labor&eacute;e de cet exemple plus loin
<p>Vous trouverez une version plus élaborée de cet exemple plus loin
dans la section Exemples.</p>

</section>

<section id="tips"><title>Conseils</title>

<p>Les noms de param&egrave;tres doivent commencer par un sigil tel que
<code>$</code>, <code>%</code>, ou <code>@</code>, de fa&ccedil;on &agrave; ce qu'ils
<p>Les noms de paramètres doivent commencer par un sigil tel que
<code>$</code>, <code>%</code>, ou <code>@</code>, de façon à ce qu'ils
soient clairement identifiables, mais aussi afin de faciliter les
interactions avec les autres directives, comme la directive de base
<directive module="core">Define</directive>. Dans le cas contraire, vous
recevrez un avertissement. En tout &eacute;tat de cause, il est conseill&eacute;
recevrez un avertissement. En tout état de cause, il est conseillé
d'avoir une bonne connaissance globale de la configuration du serveur,
afin d'&eacute;viter la r&eacute;utilisation des m&ecirc;mes variables &agrave; diff&eacute;rents niveaux,
ce qui peut &ecirc;tre &agrave; l'origine de confusions.</p>
afin d'éviter la réutilisation des mêmes variables à différents niveaux,
ce qui peut être à l'origine de confusions.</p>

<p>Les param&egrave;tres pr&eacute;fix&eacute;s par <code>$</code> ou <code>%</code> ne sont
pas &eacute;chapp&eacute;s. Les param&egrave;tres pr&eacute;fix&eacute;s par <code>@</code> sont &eacute;chapp&eacute;s
<p>Les paramètres préfixés par <code>$</code> ou <code>%</code> ne sont
pas échappés. Les paramètres préfixés par <code>@</code> sont échappés
entre guillemets.</p>

<p>Evitez de pr&eacute;fixer un param&egrave;tre par le nom d'un autre param&egrave;tre (par
exemple, pr&eacute;sence simultan&eacute;e des param&egrave;tres <code>$win</code> et
<p>Evitez de préfixer un paramètre par le nom d'un autre paramètre (par
exemple, présence simultanée des paramètres <code>$win</code> et
<code>$winter</code>), car ceci peut introduire de la confusion lors de
l'&eacute;valuation des expressions. Si cela se produit, c'est le nom de
param&egrave;tre le plus long possible qui sera utilis&eacute;.</p>
l'évaluation des expressions. Si cela se produit, c'est le nom de
paramètre le plus long possible qui sera utilisé.</p>

<p>Si vous d&eacute;sirez ins&eacute;rer une valeur dans une cha&icirc;ne, il est conseill&eacute;
de l'entourer d'accolades afin d'&eacute;viter toute confusion :</p>
<p>Si vous désirez insérer une valeur dans une chaîne, il est conseillé
de l'entourer d'accolades afin d'éviter toute confusion :</p>

<highlight language="config">
&lt;Macro DocRoot ${docroot}&gt;
@@ -131,13 +131,13 @@ de l'entourer d'accolades afin d'&eacute;viter toute confusion :</p>
<title>Exemples</title>

<section>
<title>D&eacute;finition de serveurs virtuels</title>
<title>Définition de serveurs virtuels</title>

<p>Un exemple typique d'utilisation de <module>mod_macro</module> est la
cr&eacute;ation dynamique de serveurs virtuels.</p>
création dynamique de serveurs virtuels.</p>

<highlight language="config">
## D&eacute;finition d'une macro VHost pour les configurations r&eacute;p&eacute;titives
## Définition d'une macro VHost pour les configurations répétitives

&lt;Macro VHost $host $port $dir&gt;
  Listen $port
@@ -151,14 +151,14 @@ cr&eacute;ation dynamique de serveurs virtuels.</p>
      Require all granted
    &lt;/Directory&gt;

    # restriction d'acc&egrave;s au sous-r&eacute;pertoire intranet.
    # restriction d'accès au sous-répertoire intranet.
    &lt;Directory "$dir/intranet"&gt;
      Require ip 10.0.0.0/8
    &lt;/Directory&gt;
  &lt;/VirtualHost&gt;
&lt;/Macro&gt;

## Utilisation de la macro VHost avec diff&eacute;rents arguments.
## Utilisation de la macro VHost avec différents arguments.

Use VHost www.apache.org 80 /vhosts/apache/htdocs
Use VHost example.org 8080 /vhosts/example/htdocs
@@ -167,11 +167,11 @@ Use VHost www.example.fr 1234 /vhosts/example.fr/htdocs
</section> <!-- Vhosts -->

<section>
<title>Suppression d'une d&eacute;finition de macro</title>
<title>Suppression d'une définition de macro</title>

<p>Il est recommand&eacute; de supprimer la d&eacute;finition d'une macro apr&egrave;s
l'avoir utilis&eacute;e. Ceci permet d'&eacute;viter les confusions au sein d'un
fichier de configuration complexe o&ugrave; des conflits entre noms de
<p>Il est recommandé de supprimer la définition d'une macro après
l'avoir utilisée. Ceci permet d'éviter les confusions au sein d'un
fichier de configuration complexe où des conflits entre noms de
variables peuvent survenir.</p>

<highlight language="config">
@@ -194,7 +194,7 @@ UndefMacro DirGroup
<!-- Macro -->
<directivesynopsis type="section">
<name>Macro</name>
<description>D&eacute;finition d'une macro dans un fichier de configuration</description>
<description>Définition d'une macro dans un fichier de configuration</description>
<syntax>
&lt;Macro <var>nom</var> [<var>par1</var> .. <var>parN</var>]&gt;
... &lt;/Macro&gt;</syntax>
@@ -205,12 +205,12 @@ UndefMacro DirGroup
</contextlist>

<usage>
    <p>La directive <directive>Macro</directive> permet de d&eacute;finir une macro
    <p>La directive <directive type="section">Macro</directive> permet de définir une macro
    dans un fichier de configuration Apache. Le premier argument est le nom
    de la macro, et les arguments suivants sont les param&egrave;tres. Il
    est de bon aloi de pr&eacute;fixer les noms des param&egrave;tres d'une macro
    avec un caract&egrave;re parmi '<code>$%@</code>', et d'&eacute;viter d'en faire
    de m&ecirc;me avec les noms de macros.
    de la macro, et les arguments suivants sont les paramètres. Il
    est de bon aloi de préfixer les noms des paramètres d'une macro
    avec un caractère parmi '<code>$%@</code>', et d'éviter d'en faire
    de même avec les noms de macros.
    </p>

    <highlight language="config">
@@ -239,10 +239,10 @@ UndefMacro DirGroup

<usage>
    <p> La directive <directive>Use</directive> permet d'utiliser une macro.
    La macro consid&eacute;r&eacute;e est expans&eacute;e. Son nombre d'arguments doit &ecirc;tre &eacute;gal au
    nombre de param&egrave;tres pr&eacute;cis&eacute;s dans sa d&eacute;finition. Les valeurs pass&eacute;es en
    argument sont attribu&eacute;es aux param&egrave;tres correspondants et
    substitu&eacute;es avant l'interpr&eacute;tation du texte de la macro.</p>
    La macro considérée est expansée. Son nombre d'arguments doit être égal au
    nombre de paramètres précisés dans sa définition. Les valeurs passées en
    argument sont attribuées aux paramètres correspondants et
    substituées avant l'interprétation du texte de la macro.</p>

    <highlight language="config">
Use LocalAccessPolicy
@@ -250,7 +250,7 @@ Use LocalAccessPolicy
Use RestrictedAccessPolicy "192.54.172.0/24 192.54.148.0/24"
    </highlight>

    <p>est &eacute;quivalent, avec les macros d&eacute;finies ci-dessus &agrave; :</p>
    <p>est équivalent, avec les macros définies ci-dessus à :</p>

    <highlight language="config">
Require ip 10.2.16.0/24
@@ -273,8 +273,8 @@ Require ip 192.54.172.0/24 192.54.148.0/24
</contextlist>

<usage>
    <p>La directive <directive>UndefMacro</directive> annule la d&eacute;finition
    d'une macro qui doit avoir &eacute;t&eacute; d&eacute;finie auparavant.</p>
    <p>La directive <directive>UndefMacro</directive> annule la définition
    d'une macro qui doit avoir été définie auparavant.</p>

    <highlight language="config">
UndefMacro LocalAccessPolicy
+97 −90
Original line number Diff line number Diff line
<?xml version="1.0" encoding="ISO-8859-1" ?>
<?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: 1678373:1737438 (outdated) -->
<!-- English Revision: 1737438 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->

@@ -29,42 +29,42 @@

<summary>

<p>Ce document est un compl&eacute;ment &agrave; la <a
href="../mod/mod_rewrite.html">Documentation de r&eacute;f&eacute;rence</a> de
<module>mod_rewrite</module>. Il d&eacute;crit peut-&ecirc;tre un des concepts les
plus importants &agrave; propos de mod_rewrite - &agrave; savoir, quand doit-on &eacute;viter
<p>Ce document est un complément à la <a
href="../mod/mod_rewrite.html">Documentation de référence</a> de
<module>mod_rewrite</module>. Il décrit peut-être un des concepts les
plus importants à propos de <module>mod_rewrite</module> - à savoir, quand doit-on éviter
de l'utiliser.</p>

<p>mod_rewrite doit &ecirc;tre consid&eacute;r&eacute; comme un dernier recours,
<p><module>mod_rewrite</module> doit être considéré comme un dernier recours,
lorsqu'aucune alternative n'est possible. Utiliser mod_rewrite lorsqu'il
existe des alternatives plus simples conduit &agrave; des configurations
confuses, fragiles, et difficiles &agrave; maintenir. La compr&eacute;hension des
autres alternatives disponibles est une &eacute;tape tr&egrave;s importante sur le
chemin de la ma&icirc;trise de mod_rewrite.</p>
existe des alternatives plus simples conduit à des configurations
confuses, fragiles, et difficiles à maintenir. La compréhension des
autres alternatives disponibles est une étape très importante sur le
chemin de la maîtrise de <module>mod_rewrite</module>.</p>

<p>Vous devez vous attacher &agrave; comprendre le
<p>Vous devez vous attacher à comprendre le
fonctionnement des exemples, car la plupart d'entre eux ne
fonctionneront pas sur votre syst&egrave;me si vous vous contentez de les
fonctionneront pas sur votre système si vous vous contentez de les
copier/coller dans vos fichiers de configuration.</p>

<p>Le cas le plus courant dans lequel <module>mod_rewrite</module> est
l'outil appropri&eacute; est la situation o&ugrave; la seule solution envisageable
n&eacute;cessite l'acc&egrave;s aux fichiers de configuration du serveur, alors que
cet acc&egrave;s ne vous est pas accord&eacute;. Certaines directives de configuration
l'outil approprié est la situation où la seule solution envisageable
nécessite l'accès aux fichiers de configuration du serveur, alors que
cet accès ne vous est pas accordé. Certaines directives de configuration
ne sont disponibles que dans le fichier de configuration du serveur. Si
vous ne pouvez agir que sur les fichiers .htaccess, vous devrez donc
vous tourner vers <module>mod_rewrite</module>.</p>

</summary>
<seealso><a href="../mod/mod_rewrite.html">Documentation du module mod_rewrite</a></seealso>
<seealso><a href="intro.html">Introduction &agrave; mod_rewrite</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&ocirc;le d'acc&egrave;s</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&eacute;es</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="redirect">
@@ -73,40 +73,42 @@ correspondance</a></seealso>
<p><module>mod_alias</module> fournit les directives <directive
module="mod_alias">Redirect</directive> et <directive
module="mod_alias">RedirectMatch</directive> qui permettent de
rediriger une URL vers une autre. Plut&ocirc;t que d'utiliser la directive
rediriger une URL vers une autre. Plutôt que d'utiliser la directive
<directive module="mod_rewrite">RewriteRule</directive> pour ce genre de
redirection simple d'une URL ou d'une classe d'URLs vers une autre, on
pr&eacute;f&egrave;rera l'utilisation de ces directives. En outre, avec
préfèrera l'utilisation de ces directives. En outre, avec
<code>RedirectMatch</code>, vous pouvez inclure une expression
rationnelle dans votre crit&egrave;re de redirection, ce qui vous permet de
b&eacute;n&eacute;ficier de nombreux avantages de la directive
rationnelle dans votre critère de redirection, ce qui vous permet de
bénéficier de nombreux avantages de la directive
<code>RewriteRule</code>.</p>

<p>Une utilisation courante de la directive <code>RewriteRule</code> est
la redirection de toute une classe d'URLs. Par exemple, toutes les URLs
faisant r&eacute;f&eacute;rence au r&eacute;pertoire <code>/un</code> doivent &ecirc;tre
redirig&eacute;es vers <code>http://un.example.com/</code>, ou toutes les
requ&ecirc;tes <code>http</code> doivent &ecirc;tre redirig&eacute;es vers
faisant référence au répertoire <code>/un</code> doivent être
redirigées vers <code>http://un.example.com/</code>, ou toutes les
requêtes <code>http</code> doivent être redirigées vers
<code>https</code>.</p>

<p>Pour ce faire, il est pr&eacute;f&eacute;rable d'utiliser la directive
<p>Pour ce faire, il est préférable d'utiliser la directive
<code>Redirect</code>. Souvenez-vous que la directive
<code>Redirect</code> conserve les informations relatives au chemin. En
d'autres termes, la redirection d'une URL <code>/un</code> va aussi
rediriger toutes les URLs de niveaux inf&eacute;rieurs comme
rediriger toutes les URLs de niveaux inférieurs comme
<code>/un/deux.html</code> et <code>/un/trois/quatre.html</code>.</p>

<p>Pour rediriger les URLs sous <code>/un</code> vers
<code>http://un.example.com/</code>, utilisez cette d&eacute;finition :</p>
<code>http://un.example.com/</code>, utilisez cette définition :</p>

<highlight language="config">Redirect /one/ http://one.example.com/</highlight>
<highlight language="config">
Redirect /one/ http://one.example.com/
</highlight>

<p>Pour rediriger un nom d'h&ocirc;te vers un autre nom d'h&ocirc;te, par exemple
<p>Pour rediriger un nom d'hôte vers un autre nom d'hôte, par exemple
<code>example.com</code> vers <code>www.example.com</code>, voir la
m&eacute;thode <a href="remapping.html#canonicalhost">Noms d'h&ocirc;tes canoniques</a>.</p>
méthode <a href="remapping.html#canonicalhost">Noms d'hôtes canoniques</a>.</p>

<p>Pour rediriger les URLs <code>http</code> vers <code>https</code>,
utilisez cette d&eacute;finition :</p>
utilisez cette définition :</p>

<highlight language="config">
&lt;VirtualHost *:80&gt;
@@ -116,91 +118,95 @@ Redirect "/" "https://www.example.com/"

&lt;VirtualHost *:443&gt;
ServerName www.example.com
#  ... ins&eacute;rer ici la configuration SSL
#  ... insérer ici la configuration SSL
&lt;/VirtualHost&gt;
</highlight>

<p>L'utilisation de la directive <code>RewriteRule</code> pour accomplir
cette t&acirc;che peut se justifier s'il existe d'autres directives
<code>RewriteRule</code> dans la m&ecirc;me port&eacute;e. En effet, lorsque des
cette tâche peut se justifier s'il existe d'autres directives
<code>RewriteRule</code> dans la même portée. En effet, lorsque des
directives <code>Redirect</code> et <code>RewriteRule</code> se trouvent
dans la m&ecirc;me port&eacute;e, les directives <code>RewriteRule</code> sont
ex&eacute;cut&eacute;es en premier, sans tenir compte de leur ordre d'apparition dans
dans la même portée, les directives <code>RewriteRule</code> sont
exécutées en premier, sans tenir compte de leur ordre d'apparition dans
le fichier de configuration.</p>

<p>Dans le cas de la redirection <em>http-vers-https</em>, l'utilisation
de r&egrave;gles <code>RewriteRule</code> se justifie si vous n'avez pas acc&egrave;s
de règles <code>RewriteRule</code> se justifie si vous n'avez pas accès
au fichier de configuration principal, et devez donc accomplir cette
t&acirc;che au sein d'un fichier <code>.htaccess</code>.</p>
tâche au sein d'un fichier <code>.htaccess</code>.</p>

</section>

<section id="alias"><title>Alias d'URL</title>
<p>La directive <directive module="mod_alias">Alias</directive> permet
de mettre en correspondance un URI avec un r&eacute;pertoire, ce dernier &eacute;tant
en g&eacute;n&eacute;ral situ&eacute; en dehors de l'arborescence d&eacute;finie par la directive
de mettre en correspondance un URI avec un répertoire, ce dernier étant
en général situé en dehors de l'arborescence définie par la directive
<directive module="core">DocumentRoot</directive>. Bien qu'il soit
possible d'effectuer cette mise en correspondance avec
<code>mod_rewrite</code>, il est pr&eacute;f&eacute;rable d'utiliser la directive
<code>Alias</code> pour des raisons de simplicit&eacute; et de performances.</p>
<module>mod_rewrite</module>, il est préférable d'utiliser la directive
<directive module="mod_alias">Alias</directive> pour des raisons de simplicité
et de performances.</p>

<example><title>Utilisation de la directive Alias</title>
<highlight language="config">Alias "/cats"
"/var/www/virtualhosts/felines/htdocs"</highlight>
<highlight language="config">
Alias "/cats" "/var/www/virtualhosts/felines/htdocs"
</highlight>
</example>

<p>
Pour effectuer cette mise en correspondance, <code>mod_rewrite</code>
s'impose si vous n'avez pas acc&egrave;s aux fichiers de configuration du
serveur. En effet, la directive Alias ne peut pas &ecirc;tre utilis&eacute;e dans un
Pour effectuer cette mise en correspondance, <module>mod_rewrite</module>
s'impose si vous n'avez pas accès aux fichiers de configuration du
serveur. En effet, la directive Alias ne peut pas être utilisée dans un
fichier <code>.htaccess</code>, mais seulement dans un contexte de
serveur principal ou de serveur virtuel.
</p>

<p>En outre, vous pouvez arriver au m&ecirc;me r&eacute;sultat avec les liens
symboliques, pourvu que <code>Options FollowSymLinks</code> soit activ&eacute;
<p>En outre, vous pouvez arriver au même résultat avec les liens
symboliques, pourvu que <code>Options FollowSymLinks</code> soit activé
sur votre serveur.</p>
</section>

<section id="vhosts"><title>H&eacute;bergement virtuel</title>
<p>Bien qu'il soit possible de g&eacute;rer les <a href="vhosts.html">serveurs
virtuels avec mod_rewrite</a>, il s'agit rarement de la bonne m&eacute;thode.
Il est pratiquement toujours pr&eacute;f&eacute;rable de cr&eacute;er des blocs
&lt;VirtualHost&gt; individuels. Dans l'&eacute;ventualit&eacute; o&ugrave; vous devez g&eacute;rer
<section id="vhosts"><title>Hébergement virtuel</title>
<p>Bien qu'il soit possible de gérer les <a href="vhosts.html">serveurs
virtuels avec mod_rewrite</a>, il s'agit rarement de la bonne méthode.
Il est pratiquement toujours préférable de créer des blocs
<directive module="core" type="section">VirtualHost</directive> individuels.
Dans l'éventualité où vous devez gérer
un grand nombre de serveurs virtuels, vous devez vous tourner vers
<module>mod_vhost_alias</module> pour cr&eacute;er ces serveurs
<module>mod_vhost_alias</module> pour créer ces serveurs
automatiquement.</p>

<p>Il est aussi possible d'utiliser des modules comme <module>mod_macro</module> pour
cr&eacute;er un grand nombre de serveurs virtuels dynamiquement.</p>
créer un grand nombre de serveurs virtuels dynamiquement.</p>

<p>L'utilisation de <module>mod_rewrite</module> pour la cr&eacute;ation de
serveurs virtuels peut se r&eacute;v&eacute;ler appropri&eacute;e si votre service
d'h&eacute;bergement ne vous permet pas d'acc&eacute;der aux fichiers de configuration
du serveur, et que vous soyez par cons&eacute;quent oblig&eacute; de passer par les
<p>L'utilisation de <module>mod_rewrite</module> pour la création de
serveurs virtuels peut se révéler appropriée si votre service
d'hébergement ne vous permet pas d'accéder aux fichiers de configuration
du serveur, et que vous soyez par conséquent obligé de passer par les
fichiers <code>.htaccess</code>.</p>

<p>Voir le document <a href="vhosts.html">cr&eacute;ation de serveurs virtuels
avec mod_rewrite</a> pour plus de d&eacute;tails sur la mani&egrave;re d'y parvenir si
cela semble &ecirc;tre tout de m&ecirc;me la meilleure approche.</p>
<p>Voir le document <a href="vhosts.html">création de serveurs virtuels
avec mod_rewrite</a> pour plus de détails sur la manière d'y parvenir si
cela semble être tout de même la meilleure approche.</p>

</section>

<section id="proxy"><title>Mandat simple</title>

<p>La directive <code>RewriteRule</code> fournit le drapeau <a
<p>La directive <directive module="mod_rewrite">RewriteRule</directive> fournit
le drapeau <a
href="flags.html#flag_p">[P]</a> qui permet de faire passer les URIs
r&eacute;&eacute;crits par <module>mod_proxy</module>.</p>
réécrits par <module>mod_proxy</module>.</p>

<highlight language="config">
RewriteRule "^/?images(.*)" "http://serveur-images.local/images$1" [P]
</highlight>

<p>Cependant, dans les nombreux cas o&ugrave; aucune correspondance au mod&egrave;le
n'est vraiment n&eacute;cessaire, comme dans l'exemple ci-dessus, il est
pr&eacute;f&eacute;rable d'utiliser la directive <directive
module="mod_proxy">ProxyPass</directive>. L'exemple pr&eacute;c&eacute;dent pourrait
&ecirc;tre remplac&eacute; par :</p>
<p>Cependant, dans les nombreux cas où aucune correspondance au modèle
n'est vraiment nécessaire, comme dans l'exemple ci-dessus, il est
préférable d'utiliser la directive <directive
module="mod_proxy">ProxyPass</directive>. L'exemple précédent pourrait
être remplacé par :</p>

<highlight language="config">
ProxyPass "/images/" "http://serveur-images.local/images/"
@@ -211,31 +217,31 @@ module="mod_rewrite">RewriteRule</directive> ou <directive
module="mod_proxy">ProxyPass</directive>, vous devrez dans tous les cas
utiliser aussi la directive <directive
module="mod_proxy">ProxyPassReverse</directive> pour intercepter les
redirections en provenance du serveur d'arri&egrave;re-plan :</p>
redirections en provenance du serveur d'arrière-plan :</p>

<highlight language="config">
ProxyPassReverse "/images/" "http://serveur-images.local/images/"
</highlight>

<p>Vous devrez cependant tout de m&ecirc;me utiliser <code>RewriteRule</code>
lorsque d'autres <code>RewriteRule</code>s se trouvent dans la m&ecirc;me port&eacute;e,
car elles agissent en g&eacute;n&eacute;ral avant les directives
<p>Vous devrez cependant tout de même utiliser <code>RewriteRule</code>
lorsque d'autres <code>RewriteRule</code>s se trouvent dans la même portée,
car elles agissent en général avant les directives
<code>ProxyPass</code>, et peuvent ainsi les court-circuiter.</p>

</section>

<section id="setenv"><title>Test de variables d'environnement</title>

<p><module>mod_rewrite</module> est souvent utilis&eacute; pour effectuer une
action en fonction de la pr&eacute;sence ou de l'absence d'une variable
d'environnement particuli&egrave;re ou d'un en-t&ecirc;te de requ&ecirc;te, ce qui peut
&ecirc;tre accompli de mani&egrave;re plus efficace via la directive <directive
<p><module>mod_rewrite</module> est souvent utilisé pour effectuer une
action en fonction de la présence ou de l'absence d'une variable
d'environnement particulière ou d'un en-tête de requête, ce qui peut
être accompli de manière plus efficace via la directive <directive
module="core" type="section">If</directive>.</p>

<p>Consid&eacute;rons par exemple le sc&eacute;nario courant o&ugrave; la directive
<directive>RewriteRule</directive> est utilis&eacute;e pour forcer un nom
d'h&ocirc;te canonique, tel que <code>www.example.com</code> au lieu de
<code>example.com</code>. Il est possible d'utiliser &agrave; la place la
<p>Considérons par exemple le scénario courant où la directive
<directive>RewriteRule</directive> est utilisée pour forcer un nom
d'hôte canonique, tel que <code>www.example.com</code> au lieu de
<code>example.com</code>. Il est possible d'utiliser à la place la
directive <directive module="core" type="section">If</directive> comme
suit :</p>

@@ -245,14 +251,15 @@ suit :</p>
&lt;/If&gt;
</highlight>

<p>On peut utiliser cette technique dans de nombreux sc&eacute;narios courant
<p>On peut utiliser cette technique dans de nombreux scénarios courant
pour remplacer <module>mod_rewrite</module> pour effectuer des actions
en fonction d'en-t&ecirc;tes de requ&ecirc;tes ou de r&eacute;ponses, ou de variables
en fonction d'en-têtes de requêtes ou de réponses, ou de variables
d'environnement.</p>

<p>Voir en particulier la <a href="../expr.html">documentation sur
l'&eacute;valuation des expressions</a> pour une vue d'ensemble des types
d'expressions que vous pouvez utiliser dans les sections &lt;If&gt;,
l'évaluation des expressions</a> pour une vue d'ensemble des types
d'expressions que vous pouvez utiliser dans les sections <directive
module="core" type="section">If</directive>,
ainsi que dans certaines directives.</p>

</section>