htaccess.html.fr revision d5d58e8346ef3553dfd7d5f51078a9b268729b3f
<?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">
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
<title>Tutoriel du serveur HTTP Apache : fichiers .htaccess - Serveur Apache HTTP</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>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="/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.5</p>
<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.5</a> > <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"> en </a> |
<a href="/ja/howto/htaccess.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="/pt-br/howto/htaccess.html" hreflang="pt-br" rel="alternate" title="Portugu�s (Brasil)"> pt-br </a></p>
</div>
<p>Les fichiers <code>.htaccess</code> fournissent une m�thode pour
modifier la configuration du serveur au niveau de chaque r�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>
les fichiers .htaccess ?</a></li>
<li><img alt="" src="/images/down.gif" /> <a href="#how">Comment sont appliqu�es les directives ?</a></li>
<li><img alt="" src="/images/down.gif" /> <a href="#ssi">Exemple d'Inclusion C�t� Serveur (Server Side
Includes - SSI)</a></li>
</ul></div>
<div class="section">
<h2><a name="related" id="related">Fichiers .htaccess</a></h2>
<table class="related"><tr><th>Modules Apparent�s</th><th>Directives Apparent�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 �tre utilis�s
que si vous n'avez pas acc�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�f�rable de d�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�me effet avec de meilleures performances.</div>
<div class="section">
<h2><a name="what" id="what">Que sont ce fichiers, comment les utiliser ?</a></h2>
<p>Les fichiers <code>.htaccess</code> (ou "fichiers de
configuration distribu�s") fournissent une m�thode pour modifier la
configuration du serveur au niveau d'un r�pertoire. Un fichier,
contenant une ou plusieurs directives de configuration, est plac�
dans un r�pertoire de documents particulier, et ses directives
s'appliquent � ce r�pertoire et � tous ses sous-r�pertoires.</p>
<div class="note"><h3>Note :</h3>
<p>Si vous voulez donner un autre nom � 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�f�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�n�ral, les fichiers <code>.htaccess</code> utilisent la m�me
syntaxe que les <a href="/configuring.html#syntax">fichiers de
configuration principaux</a>. Ce que vous pouvez mettre dans ces
fichier est d�termin� par la directive <code class="directive"><a href="/mod/core.html#allowoverride">AllowOverride</a></code>. Cette directive sp�cifie,
sous forme de cat�gories, quelles directives seront trait�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�cifiant quelle valeur doit prendre <code class="directive"><a href="/mod/core.html#allowoverride">AllowOverride</a></code> pour que cette directive
soit trait�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�re est permise dans les fichiers
<code>.htaccess</code> (Voir la ligne de contexte dans le r�sum� de
<code>FileInfo</code>. Vous devez donc avoir au moins
<code>AllowOverride FileInfo</code> pour que cette directive soit
trait�e dans les fichiers <code>.htaccess</code>.</p>
<div class="example"><h3>Exemple :</h3><table>
<tr>
<td>configuration du serveur, serveur virtuel, directory, .htaccess</td>
</tr>
<tr>
<td>FileInfo</td>
</tr>
</table></div>
<p>Si vous n'�tes pas s�r qu'une directive particuli�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 class="section">
<h2><a name="when" id="when">Quand doit-on (ne doit-on pas) utiliser
les fichiers .htaccess ?</a></h2>
<p>En principe, vous ne devriez utiliser les fichiers
<code>.htaccess</code> que lorsque vous n'avez pas acc�s au fichier de
configuration du serveur principal. Par exemple, la fausse
id�e
selon laquelle l'authentification de l'utilisateur devrait toujours
�tre faite dans les fichiers <code>.htaccess</code> est tr�s
r�pandue. Il est aussi souvent avanc�, ces derni�res
ann�es, que les directives de <code class="module"><a href="/mod/mod_rewrite.html">mod_rewrite</a></code> doivent
�tre d�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�thode qui doit �tre
privil�gi�e. De m�me, les directives de
<code>mod_rewrite</code> fonctionneront mieux, � de nombreux �gards,
dans le contexte du serveur principal.</p>
<p>Les fichiers <code>.htaccess</code> ne devraient �tre utilis�s
que dans le cas o� les fournisseurs de contenu ont besoin de
modifier la configuration du serveur au niveau d'un r�pertoire, mais
ne poss�dent pas l'acc�s root sur le syst�me du serveur. Si
l'administrateur du serveur ne souhaite pas effectuer des
modifications de configuration incessantes, il peut �tre int�ressant
de permettre aux utilisateurs isol�s d'effectuer eux-m�mes ces
modifications par le biais de fichiers <code>.htaccess</code>. Ceci
est particuli�rement vrai dans le cas o� le fournisseur d'acc�s �
Internet h�berge de nombreux sites d'utilisateurs sur un seul
serveur, et souhaite que ces utilisateurs puissent modifier
eux-m�mes leurs configurations.</p>
<p>Cependant et d'une mani�re g�n�rale, il vaut mieux �viter
d'utiliser les fichiers <code>.htaccess</code>. Tout �l�ment de
configuration que vous pourriez vouloir mettre dans un fichier
<code>.htaccess</code>, peut aussi �tre mis, et avec la m�me
efficacit�, dans une section <code class="directive"><a href="/mod/core.html#directory"><Directory></a></code> du fichier de configuration de
votre serveur principal.</p>
<p>Il y a deux raisons principales d'�viter l'utilisation des
fichiers <code>.htaccess</code>.</p>
<p>La premi�re est li�e aux performances. Lorsque la directive
<code class="directive"><a href="/mod/core.html#allowoverride">AllowOverride</a></code> est d�finie de
fa�on � autoriser l'utilisation des fichiers <code>.htaccess</code>,
httpd va rechercher leur pr�sence dans chaque r�pertoire. Ainsi,
permettre l'utilisation des fichiers <code>.htaccess</code> est d�j�
en soi une cause de d�gradation des performances, que vous utilisiez
effectivement ces fichiers ou non ! De plus, le fichier
<code>.htaccess</code> est charg� en m�moire chaque fois qu'un
document fait l'objet d'une requ�te.</p>
<p>Notez aussi que httpd doit rechercher les fichiers
<code>.htaccess</code> dans tous les r�pertoires de niveau
sup�rieur, afin de rassembler toutes les directives qui s'appliquent
au r�pertoire courant (Voir la section <a href="#how">comment sont
appliqu�es les directives</a>). Ainsi, si un fichier fait l'objet
d'une requ�te � partir d'un r�pertoire
fichiers suivants :</p>
<div class="example"><p><code>
/.htaccess<br />
</code></p></div>
<p>En cons�quence, chaque acc�s � un fichier de ce r�pertoire
n�cessite 4 acc�s au syst�me de fichiers suppl�mentaires pour
rechercher des fichiers <code>.htaccess</code>, m�me si
aucun de ces fichiers n'est pr�sent. Notez que cet exemple ne peut
se produire que si les fichiers <code>.htaccess</code> ont �t�
autoris�s pour le r�pertoire <code>/</code>, ce qui est rarement le
cas.</p>
<p>La seconde raison d'�viter l'utilisation des fichiers
<code>.htaccess</code> est li�e � la s�curit�. Si vous permettez aux
utilisateurs de modifier la configuration du serveur, il peut en
r�sulter des cons�quences sur lesquelles vous n'aurez aucun
contr�le. R�fl�chissez bien avant de donner ce privil�ge � vos
utilisateurs. Notez aussi que ne pas donner aux utilisateurs les
privil�ges dont ils ont besoin va entra�ner une augmentation des
demandes de support technique. Assurez-vous d'avoir inform�
clairement vos utilisateurs du niveau de privil�ges que vous leur
avez attribu�. Indiquer exactement comment vous avez d�fini la
directive <code class="directive"><a href="/mod/core.html#allowoverride">AllowOverride</a></code> et
diriger les utilisateurs vers la documentation correspondante vous
�vitera bien des confusions ult�rieures.</p>
<p>Notez que mettre un fichier <code>.htaccess</code> contenant une
revient exactement au m�me que mettre la m�me directive dans une
du fichier de configuration de votre serveur principal :</p>
<p>Fichier <code>.htaccess</code> dans
<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
</Directory>
</pre>
</div>
<p>Cependant, la perte de performances sera moindre si vous
d�finissez cette directive dans la configuration de
votre serveur principal, car cette derni�re ne sera charg�e qu'une
seule fois au moment du d�marrage du serveur, alors qu'elle le sera
� chaque acc�s dans le cas d'un fichier <code>.htaccess</code>.</p>
<p>L'utilisation des fichiers <code>.htaccess</code> peut �tre
enti�rement d�sactiv�e en d�finissant la directive <code class="directive"><a href="/mod/core.html#allowoverride">AllowOverride</a></code> � <code>none</code> :</p>
<pre class="prettyprint lang-config">AllowOverride None</pre>
<div class="section">
<h2><a name="how" id="how">Comment sont appliqu�es les directives ?</a></h2>
<p>Les directives de configuration situ�es dans un fichier
<code>.htaccess</code> s'appliquent au r�pertoire dans lequel ce
fichier <code>.htaccess</code> se trouve, ainsi qu'� tous ses
sous-r�pertoires. Cependant, il est important de garder � l'esprit
qu'il peut y avoir des fichiers <code>.htaccess</code> dans les
r�pertoires de niveau sup�rieur. Les directives sont appliqu�es
selon l'ordre dans lequel elles sont rencontr�es. Ainsi, les
directives d'un fichier <code>.htaccess</code> situ� dans un
r�pertoire particulier peuvent �craser les directives se trouvant
dans des fichiers <code>.htaccess</code> situ�s � un niveau
sup�rieur dans l'arborescence des r�pertoires. Et ces derni�res
peuvent elles-m�mes avoir �cras� des directives d'un fichier
<code>.htaccess</code> situ� � un niveau encore plus haut, ou dans
le fichier de configuration du serveur principal.</p>
<p>Exemple :</p>
fichier <code>.htaccess</code> contenant ce qui suit :</p>
<pre class="prettyprint lang-config">Options +ExecCGI</pre>
<p>Note : "<code>AllowOverride Options</code>" doit �tre pr�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>
trouve un fichier <code>.htaccess</code> contenant ce qui suit
:</p>
<pre class="prettyprint lang-config">Options Includes</pre>
<p>Ainsi, � cause de ce second fichier <code>.htaccess</code> du
des CGI est interdite, car la derni�re d�finition d'options
<code>Options Includes</code> �crase toute autre d�finition
d'options d'un fichier <code>.htaccess</code> situ� dans un
r�pertoire de niveau sup�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� dans la documentation sur les <a href="/sections.html">Sections de configuration</a>, les fichiers
<code>.htaccess</code> peuvent �craser les directives des sections
le r�pertoire correspondant, mais peuvent eux-m�mes �tre �cras�s
par d'autres types de sections des fichiers de la
configuration principale. Cette possibilit� peut s'av�rer utile pour
forcer certaines configurations, m�me en cas de pr�sence de l'option
lib�rale <code class="directive"><a href="/mod/core.html#allowoverride">AllowOverride</a></code>. Par
exemple, pour interdire l'ex�cution de scripts en autorisant la
d�finition de toute autre option dans les fichiers
<code>.htaccess</code>, vous pouvez utiliser :</p>
<pre class="prettyprint lang-config">
Allowoverride All
</Directory>
<Location />
Options +IncludesNoExec -ExecCGI<br />
</Location>
</pre>
<div class="note">Dans cet exemple, on consid�re que le chemin d�fini par la
<div class="section">
<h2><a name="auth" id="auth">Exemple d'authentification</a></h2>
<p>Si vous acc�dez directement � ce point du document pour apprendre
� effectuer une authentification, il est important de noter ceci. Il
existe une fausse id�e selon laquelle il serait n�cessaire
d'utiliser les fichiers <code>.htaccess</code> pour impl�menter
l'authentification par mot de passe. Ceci est tout simplement faux.
Pour y parvenir, il est pr�f�rable de mettre les directives
d'authentification dans une section <code class="directive"><a href="/mod/core.html#directory"><Directory></a></code> du fichier de configuration de
votre serveur principal, et les fichiers <code>.htaccess</code> ne
devraient �tre utilis�s que dans le cas o� vous n'avez pas acc�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 �tant dit, si vous pensez que vous devez quand-m�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"
Require Group admins
</pre>
<p>Notez que <code>AllowOverride AuthConfig</code> doit �tre pr�sent
pour que ces directives produisent leur effet.</p>
l'authentification</a> pour une description plus d�taill�e de
l'authentification et de l'autorisation.</p>
<div class="section">
<h2><a name="ssi" id="ssi">Exemple d'Inclusion C�t� Serveur (Server Side
Includes - SSI)</a></h2>
<p>Les fichiers <code>.htaccess</code> sont aussi couramment
utilis�s pour activer les SSI pour un r�pertoire particulier. Pour y
parvenir, on utilise les directives de configuration suivantes,
plac�es dans un fichier <code>.htaccess</code> enregistr� dans le
r�pertoire consid�r� :</p>
<pre class="prettyprint lang-config">
Options +Includes
AddHandler server-parsed shtml
</pre>
<p>Notez que <code>AllowOverride Options</code> et <code>AllowOverride
FileInfo</code> doivent �tre tous les deux pr�sents pour que ces
directives puissent produire leur effet.</p>
pour une description plus d�taill�e des SSI.</p>
<div class="section">
<h2><a name="cgi" id="cgi">Exemple de CGI</a></h2>
<p>En fin de compte, vous avez d�cid� d'utiliser un fichier
<code>.htaccess</code> pour permettre l'ex�cution des programmes CGI
dans un r�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�pertoire donn� soient consid�r�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 �tre tous les deux pr�sents pour que ces
directives puissent produire leur effet.</p>
pour une description plus d�taill�e de la configuration et de la
proprammation CGI.</p>
<div class="section">
<h2><a name="troubleshoot" id="troubleshoot">R�solution des probl�mes</a></h2>
<p>De nombreuses raisons peuvent �tre � l'origine du fait que
les directives que vous avez mises dans un fichier
<code>.htaccess</code> ne produisent pas l'effet d�sir�.</p>
<p>Le plus souvent, le probl�me vient du fait que la d�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�rifiez si une directive
<code>AllowOverride None</code> n'affecte pas le r�pertoire o� se
trouve votre fichier. Un bon test consiste � mettre des directives
dont la syntaxe est erron�e dans votre ficher <code>.htaccess</code>
et de recharger la page. Si aucune erreur n'est g�n�r�e par le
serveur, il est pratiquement certain qu'une directive
<code>AllowOverride None</code> affecte votre r�pertoire.</p>
<p>Par contre, si vous obtenez des erreurs de serveur lorsque vous
tentez d'acc�der � des documents, consultez votre journal des
erreurs de httpd. Il vous indiquera probablement que la directive
utilis�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�fini la directive
suffisant pour la directive que vous utilisez. Consultez la
documentation de cette directive pour d�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�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�cifique � 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"> en </a> |
<a href="/ja/howto/htaccess.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="/pt-br/howto/htaccess.html" hreflang="pt-br" rel="alternate" title="Portugu�s (Brasil)"> pt-br </a></p>
</div><div id="footer">
<p class="apache">Copyright 2012 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="/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>