1
0
mirror of https://github.com/apache/httpd.git synced 2025-11-17 00:03:29 +03:00
Files
apache/docs/manual/howto/htaccess.html.fr
Lucien Gentis 12745a93ae Rebuild.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1836023 13f79535-47bb-0310-9956-ffa450edef68
2018-07-16 12:05:25 +00:00

512 lines
32 KiB
Plaintext

<?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>Tutoriel du serveur HTTP Apache : fichiers .htaccess - Serveur HTTP Apache Version 2.5</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 id="manual-page"><div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.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 HTTP Apache Version 2.5</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.5</a> &gt; <a href="./">Recettes / Tutoriels</a></div><div id="page-content"><div id="preamble"><h1>Tutoriel du serveur HTTP Apache : fichiers .htaccess</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/howto/htaccess.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../es/howto/htaccess.html" hreflang="es" rel="alternate" title="Espa&#241;ol">&nbsp;es&nbsp;</a> |
<a href="../fr/howto/htaccess.html" title="Fran&#231;ais">&nbsp;fr&nbsp;</a> |
<a href="../ja/howto/htaccess.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/howto/htaccess.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../pt-br/howto/htaccess.html" hreflang="pt-br" rel="alternate" title="Portugu&#234;s (Brasil)">&nbsp;pt-br&nbsp;</a></p>
</div>
<p>Les fichiers <code>.htaccess</code> fournissent une m&#233;thode pour
modifier la configuration du serveur au niveau de chaque r&#233;pertoire.</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#related">Fichiers .htaccess</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#what">Que sont ce fichiers, comment les utiliser ?</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#when">Quand doit-on (ne doit-on pas) utiliser
les fichiers .htaccess ?</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#how">Comment sont appliqu&#233;es les directives ?</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#auth">Exemple d'authentification</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#ssi">Exemple d'Inclusion C&#244;t&#233; Serveur (Server Side
Includes - SSI)</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#rewrite">Les r&#232;gles de r&#233;&#233;criture dans les fichiers .htaccess</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#cgi">Exemple de CGI</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#troubleshoot">R&#233;solution des probl&#232;mes</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="section">
<h2><a name="related" id="related">Fichiers .htaccess</a><a title="Lien permanent" href="#related" class="permalink">&para;</a></h2>
<table class="related"><tr><th>Modules Apparent&#233;s</th><th>Directives Apparent&#233;es</th></tr><tr><td><ul><li><code class="module"><a href="../mod/core.html">core</a></code></li><li><code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code></li><li><code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code></li><li><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code></li><li><code class="module"><a href="../mod/mod_include.html">mod_include</a></code></li><li><code class="module"><a href="../mod/mod_mime.html">mod_mime</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/core.html#accessfilename">AccessFileName</a></code></li><li><code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code></li><li><code class="directive"><a href="../mod/core.html#options">Options</a></code></li><li><code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code></li><li><code class="directive"><a href="../mod/core.html#sethandler">SetHandler</a></code></li><li><code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code></li><li><code class="directive"><a href="../mod/mod_authn_core.html#authname">AuthName</a></code></li><li><code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code></li><li><code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code></li><li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li></ul></td></tr></table>
<div class="note">Les fichiers <code>.htaccess</code> ne doivent &#234;tre utilis&#233;s
que si vous n'avez pas acc&#232;s au fichier de configuration du serveur
principal. L'utilisation des fichiers <code>.htaccess</code>
ralentit le fonctionnement de votre serveur HTTP Apache. Il est toujours
pr&#233;f&#233;rable de d&#233;finir les directives que vous pouvez inclure dans un
fichier <code>.htaccess</code> dans une section <code class="directive"><a href="../mod/core.html#directory">Directory</a></code>, car elles produiront le
m&#234;me effet avec de meilleures performances.</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="what" id="what">Que sont ce fichiers, comment les utiliser ?</a><a title="Lien permanent" href="#what" class="permalink">&para;</a></h2>
<p>Les fichiers <code>.htaccess</code> (ou "fichiers de
configuration distribu&#233;s") fournissent une m&#233;thode pour modifier la
configuration du serveur au niveau d'un r&#233;pertoire. Un fichier,
contenant une ou plusieurs directives de configuration, est plac&#233;
dans un r&#233;pertoire de documents particulier, et ses directives
s'appliquent &#224; ce r&#233;pertoire et &#224; tous ses sous-r&#233;pertoires.</p>
<div class="note"><h3>Note :</h3>
<p>Si vous voulez donner un autre nom &#224; votre fichier
<code>.htaccess</code>, vous pouvez le faire en utilisant la
directive <code class="directive"><a href="../mod/core.html#accessfilename">AccessFileName</a></code>. Par
exemple, si vous pr&#233;f&#233;rez nommer votre fichier
<code>.config</code>, vous pouvez mettre ceci dans le fichier de
configuration de votre serveur :</p>
<pre class="prettyprint lang-config">AccessFileName ".config"</pre>
</div>
<p>En g&#233;n&#233;ral, les fichiers <code>.htaccess</code> utilisent la m&#234;me
syntaxe que les <a href="../configuring.html#syntax">fichiers de
configuration principaux</a>. Ce que vous pouvez mettre dans ces
fichier est d&#233;termin&#233; par la directive <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code>. Cette directive sp&#233;cifie,
sous forme de cat&#233;gories, quelles directives seront trait&#233;es si
elles se trouvent dans un fichier <code>.htaccess</code>. Si une
directive est permise dans un fichier <code>.htaccess</code> file,
la documentation de cette directive contiendra une section Override,
sp&#233;cifiant quelle valeur doit prendre <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> pour que cette directive
soit trait&#233;e.</p>
<p>Par exemple, si vous regardez la documentation de la directive
<code class="directive"><a href="../mod/core.html#adddefaultcharset">AddDefaultCharset</a></code>, vous verrez
que cette derni&#232;re est permise dans les fichiers
<code>.htaccess</code> (Voir la ligne de contexte dans le r&#233;sum&#233; de
la directive). La ligne <a href="../mod/directive-dict.html#Context">Override</a> indique
<code>FileInfo</code>. Vous devez donc avoir au moins
<code>AllowOverride FileInfo</code> pour que cette directive soit
trait&#233;e dans les fichiers <code>.htaccess</code>.</p>
<div class="example"><h3>Exemple :</h3><table>
<tr>
<td><a href="../mod/directive-dict.html#Context">Contexte :</a></td>
<td>configuration du serveur, serveur virtuel, directory, .htaccess</td>
</tr>
<tr>
<td><a href="../mod/directive-dict.html#Override">Override:</a></td>
<td>FileInfo</td>
</tr>
</table></div>
<p>Si vous n'&#234;tes pas s&#251;r qu'une directive particuli&#232;re soit permise
dans un fichier <code>.htaccess</code>, lisez la documentation de
cette directive, et consultez la ligne de contexte pour
".htaccess".</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="when" id="when">Quand doit-on (ne doit-on pas) utiliser
les fichiers .htaccess ?</a><a title="Lien permanent" href="#when" class="permalink">&para;</a></h2>
<p>En principe, vous ne devriez utiliser les fichiers
<code>.htaccess</code> que lorsque vous n'avez pas acc&#232;s au fichier de
configuration du serveur principal. Par exemple, la fausse
id&#233;e
selon laquelle l'authentification de l'utilisateur devrait toujours
&#234;tre faite dans les fichiers <code>.htaccess</code> est tr&#232;s
r&#233;pandue. Il est aussi souvent avanc&#233;, ces derni&#232;res
ann&#233;es, que les directives de <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> doivent
&#234;tre d&#233;finies dans les fichiers <code>.htaccess</code>. Ceci est
tout simplement faux. Vous pouvez configurer
l'authentification des utilisateurs au niveau de la configuration du
serveur principal, et c'est en fait cette m&#233;thode qui doit &#234;tre
privil&#233;gi&#233;e. De m&#234;me, les directives de
<code>mod_rewrite</code> fonctionneront mieux, &#224; de nombreux &#233;gards,
dans le contexte du serveur principal.</p>
<p>Les fichiers <code>.htaccess</code> ne devraient &#234;tre utilis&#233;s
que dans le cas o&#249; les fournisseurs de contenu ont besoin de
modifier la configuration du serveur au niveau d'un r&#233;pertoire, mais
ne poss&#232;dent pas l'acc&#232;s root sur le syst&#232;me du serveur. Si
l'administrateur du serveur ne souhaite pas effectuer des
modifications de configuration incessantes, il peut &#234;tre int&#233;ressant
de permettre aux utilisateurs isol&#233;s d'effectuer eux-m&#234;mes ces
modifications par le biais de fichiers <code>.htaccess</code>. Ceci
est particuli&#232;rement vrai dans le cas o&#249; le fournisseur d'acc&#232;s &#224;
Internet h&#233;berge de nombreux sites d'utilisateurs sur un seul
serveur, et souhaite que ces utilisateurs puissent modifier
eux-m&#234;mes leurs configurations.</p>
<p>Cependant et d'une mani&#232;re g&#233;n&#233;rale, il vaut mieux &#233;viter
d'utiliser les fichiers <code>.htaccess</code>. Tout &#233;l&#233;ment de
configuration que vous pourriez vouloir mettre dans un fichier
<code>.htaccess</code>, peut aussi &#234;tre mis, et avec la m&#234;me
efficacit&#233;, dans une section <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> du fichier de configuration de
votre serveur principal.</p>
<p>Il y a deux raisons principales d'&#233;viter l'utilisation des
fichiers <code>.htaccess</code>.</p>
<p>La premi&#232;re est li&#233;e aux performances. Lorsque la directive
<code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> est d&#233;finie de
fa&#231;on &#224; autoriser l'utilisation des fichiers <code>.htaccess</code>,
httpd va rechercher leur pr&#233;sence dans chaque r&#233;pertoire. Ainsi,
permettre l'utilisation des fichiers <code>.htaccess</code> est d&#233;j&#224;
en soi une cause de d&#233;gradation des performances, que vous utilisiez
effectivement ces fichiers ou non ! De plus, le fichier
<code>.htaccess</code> est charg&#233; en m&#233;moire chaque fois qu'un
document fait l'objet d'une requ&#234;te.</p>
<p>Notez aussi que httpd doit rechercher les fichiers
<code>.htaccess</code> dans tous les r&#233;pertoires de niveau
sup&#233;rieur, afin de rassembler toutes les directives qui s'appliquent
au r&#233;pertoire courant (Voir la section <a href="#how">comment sont
appliqu&#233;es les directives</a>). Ainsi, si un fichier fait l'objet
d'une requ&#234;te &#224; partir d'un r&#233;pertoire
<code>/www/htdocs/exemple</code>, httpd doit rechercher les
fichiers suivants :</p>
<div class="example"><p><code>
/.htaccess<br />
/www/.htaccess<br />
/www/htdocs/.htaccess<br />
/www/htdocs/exemple/.htaccess
</code></p></div>
<p>En cons&#233;quence, chaque acc&#232;s &#224; un fichier de ce r&#233;pertoire
n&#233;cessite 4 acc&#232;s au syst&#232;me de fichiers suppl&#233;mentaires pour
rechercher des fichiers <code>.htaccess</code>, m&#234;me si
aucun de ces fichiers n'est pr&#233;sent. Notez que cet exemple ne peut
se produire que si les fichiers <code>.htaccess</code> ont &#233;t&#233;
autoris&#233;s pour le r&#233;pertoire <code>/</code>, ce qui est rarement le
cas.</p>
<p>La seconde raison d'&#233;viter l'utilisation des fichiers
<code>.htaccess</code> est li&#233;e &#224; la s&#233;curit&#233;. Si vous permettez aux
utilisateurs de modifier la configuration du serveur, il peut en
r&#233;sulter des cons&#233;quences sur lesquelles vous n'aurez aucun
contr&#244;le. R&#233;fl&#233;chissez bien avant de donner ce privil&#232;ge &#224; vos
utilisateurs. Notez aussi que ne pas donner aux utilisateurs les
privil&#232;ges dont ils ont besoin va entra&#238;ner une augmentation des
demandes de support technique. Assurez-vous d'avoir inform&#233;
clairement vos utilisateurs du niveau de privil&#232;ges que vous leur
avez attribu&#233;. Indiquer exactement comment vous avez d&#233;fini la
directive <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> et
diriger les utilisateurs vers la documentation correspondante vous
&#233;vitera bien des confusions ult&#233;rieures.</p>
<p>Notez que mettre un fichier <code>.htaccess</code> contenant une
directive dans un r&#233;pertoire <code>/www/htdocs/exemple</code>
revient exactement au m&#234;me que mettre la m&#234;me directive dans une
section Directory <code>&lt;Directory "/www/htdocs/exemple"&gt;</code>
du fichier de configuration de votre serveur principal :</p>
<p>Fichier <code>.htaccess</code> dans
<code>/www/htdocs/exemple</code> :</p>
<div class="example"><h3>Contenu du fichier .htaccess dans
<code>/www/htdocs/exemple</code></h3><pre class="prettyprint lang-config">AddType text/example ".exm"</pre>
</div>
<div class="example"><h3>Section de votre fichier
<code>httpd.conf</code></h3><pre class="prettyprint lang-config">&lt;Directory "/www/htdocs/example"&gt;
AddType text/example ".exm"
&lt;/Directory&gt;</pre>
</div>
<p>Cependant, la perte de performances sera moindre si vous
d&#233;finissez cette directive dans la configuration de
votre serveur principal, car cette derni&#232;re ne sera charg&#233;e qu'une
seule fois au moment du d&#233;marrage du serveur, alors qu'elle le sera
&#224; chaque acc&#232;s dans le cas d'un fichier <code>.htaccess</code>.</p>
<p>L'utilisation des fichiers <code>.htaccess</code> peut &#234;tre
enti&#232;rement d&#233;sactiv&#233;e en d&#233;finissant la directive <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> &#224; <code>none</code> :</p>
<pre class="prettyprint lang-config">AllowOverride None</pre>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="how" id="how">Comment sont appliqu&#233;es les directives ?</a><a title="Lien permanent" href="#how" class="permalink">&para;</a></h2>
<p>Les directives de configuration situ&#233;es dans un fichier
<code>.htaccess</code> s'appliquent au r&#233;pertoire dans lequel ce
fichier <code>.htaccess</code> se trouve, ainsi qu'&#224; tous ses
sous-r&#233;pertoires. Cependant, il est important de garder &#224; l'esprit
qu'il peut y avoir des fichiers <code>.htaccess</code> dans les
r&#233;pertoires de niveau sup&#233;rieur. Les directives sont appliqu&#233;es
selon l'ordre dans lequel elles sont rencontr&#233;es. Ainsi, les
directives d'un fichier <code>.htaccess</code> situ&#233; dans un
r&#233;pertoire particulier peuvent &#233;craser les directives se trouvant
dans des fichiers <code>.htaccess</code> situ&#233;s &#224; un niveau
sup&#233;rieur dans l'arborescence des r&#233;pertoires. Et ces derni&#232;res
peuvent elles-m&#234;mes avoir &#233;cras&#233; des directives d'un fichier
<code>.htaccess</code> situ&#233; &#224; un niveau encore plus haut, ou dans
le fichier de configuration du serveur principal.</p>
<p>Exemple :</p>
<p>Dans le r&#233;pertoire <code>/www/htdocs/exemple1</code> se trouve un
fichier <code>.htaccess</code> contenant ce qui suit :</p>
<pre class="prettyprint lang-config">Options +ExecCGI</pre>
<p>Note : "<code>AllowOverride Options</code>" doit &#234;tre pr&#233;sent
pour permettre l'utilisation de la directive "<code class="directive"><a href="../mod/core.html#options">Options</a></code>" dans les fichiers
<code>.htaccess</code>.</p>
<p>Dans le r&#233;pertoire <code>/www/htdocs/exemple1/exemple2</code> se
trouve un fichier <code>.htaccess</code> contenant ce qui suit
:</p>
<pre class="prettyprint lang-config">Options Includes</pre>
<p>Ainsi, &#224; cause de ce second fichier <code>.htaccess</code> du
r&#233;pertoire <code>/www/htdocs/exemple1/exemple2</code>, l'ex&#233;cution
des CGI est interdite, car la derni&#232;re d&#233;finition d'options
<code>Options Includes</code> &#233;crase toute autre d&#233;finition
d'options d'un fichier <code>.htaccess</code> situ&#233; dans un
r&#233;pertoire de niveau sup&#233;rieur.</p>
<h3><a name="merge" id="merge">Interactions entre les fichiers .htaccess
et les fichiers de configuration du serveur principal</a></h3>
<p>Comme indiqu&#233; dans la documentation sur les <a href="../sections.html">Sections de configuration</a>, les fichiers
<code>.htaccess</code> peuvent &#233;craser les directives des sections
<code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> pour
le r&#233;pertoire correspondant, mais peuvent eux-m&#234;mes &#234;tre &#233;cras&#233;s
par d'autres types de sections des fichiers de la
configuration principale. Cette possibilit&#233; peut s'av&#233;rer utile pour
forcer certaines configurations, m&#234;me en cas de pr&#233;sence de l'option
lib&#233;rale <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code>. Par
exemple, pour interdire l'ex&#233;cution de scripts en autorisant la
d&#233;finition de toute autre option dans les fichiers
<code>.htaccess</code>, vous pouvez utiliser :</p>
<pre class="prettyprint lang-config">&lt;Directory "/www/htdocs"&gt;
AllowOverride All
&lt;/Directory&gt;
&lt;Location "/"&gt;
Options +IncludesNoExec -ExecCGI
&lt;/Location&gt;</pre>
<div class="note">Dans cet exemple, on consid&#232;re que le chemin d&#233;fini par la
directive <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> est
<code>/www/htdocs</code>.</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="auth" id="auth">Exemple d'authentification</a><a title="Lien permanent" href="#auth" class="permalink">&para;</a></h2>
<p>Si vous acc&#233;dez directement &#224; ce point du document pour apprendre
&#224; effectuer une authentification, il est important de noter ceci. Il
existe une fausse id&#233;e selon laquelle il serait n&#233;cessaire
d'utiliser les fichiers <code>.htaccess</code> pour impl&#233;menter
l'authentification par mot de passe. Ceci est tout simplement faux.
Pour y parvenir, il est pr&#233;f&#233;rable de mettre les directives
d'authentification dans une section <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> du fichier de configuration de
votre serveur principal, et les fichiers <code>.htaccess</code> ne
devraient &#234;tre utilis&#233;s que dans le cas o&#249; vous n'avez pas acc&#232;s au
fichier de configuration du serveur principal. Voir <a href="#when">ci-dessus</a> pour savoir dans quels cas vous devez ou
ne devez pas utiliser les fichiers <code>.htaccess</code>.</p>
<p>Ceci &#233;tant dit, si vous pensez que vous devez quand-m&#234;me utiliser
un fichier <code>.htaccess</code>, vous pouvez utiliser la
configuration suivante :</p>
<p>Contenu du fichier <code>.htaccess</code> :</p>
<pre class="prettyprint lang-config">AuthType Basic
AuthName "Password Required"
AuthUserFile "/www/passwords/password.file"
AuthGroupFile "/www/passwords/group.file"
Require group admins</pre>
<p>Notez que <code>AllowOverride AuthConfig</code> doit &#234;tre pr&#233;sent
pour que ces directives produisent leur effet.</p>
<p>Vous pouvez vous r&#233;f&#233;rer au <a href="auth.html">tutoriel sur
l'authentification</a> pour une description plus d&#233;taill&#233;e de
l'authentification et de l'autorisation.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="ssi" id="ssi">Exemple d'Inclusion C&#244;t&#233; Serveur (Server Side
Includes - SSI)</a><a title="Lien permanent" href="#ssi" class="permalink">&para;</a></h2>
<p>Les fichiers <code>.htaccess</code> sont aussi couramment
utilis&#233;s pour activer les SSI pour un r&#233;pertoire particulier. Pour y
parvenir, on utilise les directives de configuration suivantes,
plac&#233;es dans un fichier <code>.htaccess</code> enregistr&#233; dans le
r&#233;pertoire consid&#233;r&#233; :</p>
<pre class="prettyprint lang-config">Options +Includes
AddType text/html "shtml"
AddHandler server-parsed shtml</pre>
<p>Notez que <code>AllowOverride Options</code> et <code>AllowOverride
FileInfo</code> doivent &#234;tre tous les deux pr&#233;sents pour que ces
directives puissent produire leur effet.</p>
<p>Vous pouvez vous r&#233;f&#233;rer au <a href="ssi.html">tutoriel SSI</a>
pour une description plus d&#233;taill&#233;e des SSI.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="rewrite" id="rewrite">Les r&#232;gles de r&#233;&#233;criture dans les fichiers .htaccess</a><a title="Lien permanent" href="#rewrite" class="permalink">&para;</a></h2>
<p>Sivous utilisez des directives <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> dans un fichier
<code>.htaccess</code>, gardez &#224; l'esprit que les choses sont l&#233;g&#232;rement
diff&#233;rentes dans un contexte de r&#233;pertoire. En particulier, les r&#232;gles
sont relatives au r&#233;pertoire courant, et non &#224; l'URI original. Consid&#233;rez
les exemples suivants :</p>
<pre class="prettyprint lang-config"># Dans httpd.conf
RewriteRule "^/images/(.+)\.jpg" "/images/$1.png"
# Dans un fichier .htaccess situ&#233; dans le r&#233;pertoire racine de vos
# documents
RewriteRule "^images/(.+)\.jpg" "images/$1.png"
# Dans un fichier .htaccess situ&#233; dans le r&#233;pertoire images/
RewriteRule "^(.+)\.jpg" "$1.png"</pre>
<p>On voit que si le fichier <code>.htaccess</code> se situe &#224; la racine
de vos documents, le slash de t&#234;te est supprim&#233; de la valeur de
remplacement sp&#233;cifi&#233;e pour la r&#232;gle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>, et que si le fichier
<code>.htaccess</code> se situe dans le r&#233;pertoire <code>images</code>,
la cha&#238;ne <code>/images/</code> dispara&#238;t de cette m&#234;me valeur de
remplacement. Il doit donc en &#234;tre de m&#234;me dans votre expression
rationnelle.</p>
<p>Veuillez vous r&#233;f&#233;rer &#224; cette <a href="../rewrite/">documentation</a>
pour une &#233;tude d&#233;taill&#233;e de l'utilisation du module
<code>mod_rewrite</code>.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="cgi" id="cgi">Exemple de CGI</a><a title="Lien permanent" href="#cgi" class="permalink">&para;</a></h2>
<p>En fin de compte, vous avez d&#233;cid&#233; d'utiliser un fichier
<code>.htaccess</code> pour permettre l'ex&#233;cution des programmes CGI
dans un r&#233;pertoire particulier. Pour y parvenir, vous pouvez
utiliser la configuration suivante :</p>
<pre class="prettyprint lang-config">Options +ExecCGI
AddHandler cgi-script "cgi" "pl"</pre>
<p>Alternativement, si vous souhaitez que tous les fichiers d'un
r&#233;pertoire donn&#233; soient consid&#233;r&#233;s comme des programmes CGI, vous
pouvez utiliser la configuration suivante :</p>
<pre class="prettyprint lang-config">Options +ExecCGI
SetHandler cgi-script</pre>
<p>Notez que <code>AllowOverride Options</code> et <code>AllowOverride
FileInfo</code> doivent &#234;tre tous les deux pr&#233;sents pour que ces
directives puissent produire leur effet.</p>
<p>Vous pouvez vous r&#233;f&#233;rer au <a href="cgi.html">tutoriel CGI</a>
pour une description plus d&#233;taill&#233;e de la configuration et de la
proprammation CGI.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="troubleshoot" id="troubleshoot">R&#233;solution des probl&#232;mes</a><a title="Lien permanent" href="#troubleshoot" class="permalink">&para;</a></h2>
<p>De nombreuses raisons peuvent &#234;tre &#224; l'origine du fait que
les directives que vous avez mises dans un fichier
<code>.htaccess</code> ne produisent pas l'effet d&#233;sir&#233;.</p>
<p>Le plus souvent, le probl&#232;me vient du fait que la d&#233;finition de
la directive <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code>
ne permet pas l'activation des directives de votre fichier
<code>.htaccess</code>. V&#233;rifiez si une directive
<code>AllowOverride None</code> n'affecte pas le r&#233;pertoire o&#249; se
trouve votre fichier. Un bon test consiste &#224; mettre des directives
dont la syntaxe est erron&#233;e dans votre ficher <code>.htaccess</code>
et de recharger la page. Si aucune erreur n'est g&#233;n&#233;r&#233;e par le
serveur, il est pratiquement certain qu'une directive
<code>AllowOverride None</code> affecte votre r&#233;pertoire.</p>
<p>Par contre, si vous obtenez des erreurs de serveur lorsque vous
tentez d'acc&#233;der &#224; des documents, consultez votre journal des
erreurs de httpd. Il vous indiquera probablement que la directive
utilis&#233;e dans votre fichier <code>.htaccess</code> n'est pas
permise.</p>
<div class="example"><p><code>
[Fri Sep 17 18:43:16 2010] [alert] [client 192.168.200.51] /var/www/html/.htaccess: DirectoryIndex not allowed here
</code></p></div>
<p>Cela signifie soit que vous utilisez une directive qui n'est
jamais permise dans les fichiers <code>.htaccess</code>, soit
que vous n'avez tout simplement pas d&#233;fini la directive
<code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> &#224; un niveau
suffisant pour la directive que vous utilisez. Consultez la
documentation de cette directive pour d&#233;terminer quel cas
s'applique.</p>
<p>Le journal des erreurs peut aussi vous signaler une erreur de
syntaxe dans l'usage de la directive elle-m&#234;me.</p>
<div class="example"><p><code>
[Sat Aug 09 16:22:34 2008] [alert] [client 192.168.200.51] /var/www/html/.htaccess: RewriteCond: bad flag delimiters
</code></p></div>
<p>Dans ce cas, le message d'erreur sera sp&#233;cifique &#224; l'erreur
de syntaxe que vous avez commise.</p>
</div></div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/howto/htaccess.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../es/howto/htaccess.html" hreflang="es" rel="alternate" title="Espa&#241;ol">&nbsp;es&nbsp;</a> |
<a href="../fr/howto/htaccess.html" title="Fran&#231;ais">&nbsp;fr&nbsp;</a> |
<a href="../ja/howto/htaccess.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/howto/htaccess.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../pt-br/howto/htaccess.html" hreflang="pt-br" rel="alternate" title="Portugu&#234;s (Brasil)">&nbsp;pt-br&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/trunk/howto/htaccess.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 2018 The Apache Software Foundation.<br />Autoris&#233; 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/quickreference.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>