<?xml version="1.0" encoding="UTF-8"?>
<!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=UTF-8" http-equiv="Content-Type" />
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>Termes utilisés pour la description des directives - 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></div><div id="page-content"><div id="preamble"><h1>Termes utilisés pour la description des directives</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/mod/directive-dict.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../es/mod/directive-dict.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
<a href="../fr/mod/directive-dict.html" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ja/mod/directive-dict.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/mod/directive-dict.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/mod/directive-dict.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
</div>

    <p>Ce document décrit les termes utilisés pour décrire chaque <a href="directives.html">directive de configuration</a> d'Apache.</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#Description">Description</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#Syntax">Syntaxe</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#Default">Défaut</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#Context">Contexte</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#Override">Surcharge .htaccess</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#Status">Statut</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#Module">Module</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#Compatibility">Compatibilité</a></li>
</ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="../configuring.html">Fichiers de configuration</a></li><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="Description" id="Description">Description</a> <a title="Lien permanent" href="#Description" class="permalink">&para;</a></h2>

<p>Une brève description des fonctions de cette directive.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="Syntax" id="Syntax">Syntaxe</a> <a title="Lien permanent" href="#Syntax" class="permalink">&para;</a></h2>

    <p>Ce terme introduit le format sous lequel la directive doit
    apparaître dans le fichier de configuration. Cette syntaxe est très
    spécifique à la directive et est décrite en détail dans la
    définition de cette dernière. En général, le nom de la directive est
    suivi d'un ou plusieurs arguments séparés par des espaces. Si un
    argument contient un espace, il doit être entouré de guillemets. Les
    arguments optionnels sont entourés de crochets. Lorsqu'un argument
    accepte une valeur parmi une liste de valeurs possibles, cette liste
    est spécifiée en séparant les valeurs par une barre verticale "|".
    Les textes littéraux sont présentés dans la fonte par défaut, alors
    que les types d'argument pour lesquels une substitution est
    nécessaire sont en <em>gras</em>. La syntaxe des directives
    acceptant un nombre variable d'arguments se termine par "...", ce
    qui indique que le dernier argument peut être répété.</p>

    <p>Les directives utilisent un grand nombre de types d'arguments
    différents. Les plus courants sont définis ci-dessous.</p>

    <dl>
      <dt><em>URL</em></dt>

      <dd>Un Localisateur de Ressource Uniforme (Uniform Resource
      Locator) complet comportant un protocole, un nom d'hôte et un nom
      de chemin optionnel comme dans
      <code>http://www.example.com/chemin/vers/fichier.html</code></dd>

      <dt><em>chemin-URL</em></dt>

      <dd>La partie de l'<em>url</em> qui suit le protocole et le nom
      d'hôte comme dans <code>/chemin/vers/fichier.html</code>. Le
      <em>chemin-URL</em> représente la ressource vue depuis le web, et est
      différente de la représentation de cette même ressource vue depuis le
      système de fichiers.</dd>

      <dt><em>chemin-fichier</em></dt>

      <dd>Le chemin d'un fichier dans le système de fichiers local
      commençant par le répertoire racine comme dans
      <code>/usr/local/apache/htdocs/chemin/vers/fichier.html</code>.
      Sauf mention contraire, un <em>chemin-fichier</em> qui ne commence
      pas par un slash sera considéré comme relatif au répertoire défini
      par la directive <a href="core.html#serverroot">ServerRoot</a>.</dd>

      <dt><em>chemin-répertoire</em></dt>

      <dd>Le chemin d'un répertoire dans le système de fichiers local
      commençant par le répertoire racine comme dans
      <code>/usr/local/apache/htdocs/chemin/vers/</code>.</dd>

      <dt><em>nom-fichier</em></dt>

      <dd>Le nom d'un fichier sans son chemin comme dans
      <code>fichier.html</code>.</dd>

      <dt><em>regex</em></dt>

      <dd>Une <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression rationnelle</a>
      compatible Perl. La définition de la directive spécifiera à quoi
      <em>regex</em> sera comparée.</dd>

      <dt><em>extension</em></dt>

      <dd>En général, c'est la partie du <em>nom de fichier</em> qui
      suit le dernier point. Cependant, Apache reconnaît plusieurs
      extensions de noms de fichiers ; ainsi, si un <em>nom de
      fichier</em>
      contient plusieurs points, chacune des parties du nom de fichier
      séparées par des points et situées après le premier point est une
      <em>extension</em>. Par exemple, le <em>nom de fichier</em>
      <code>fichier.html.en</code> comporte deux extensions :
      <code>.html</code> et <code>.en</code>. Pour les directives
      Apache, vous pouvez spécifier les <em>extension</em>s avec ou sans
      le point initial. Enfin, les <em>extension</em>s ne sont pas
      sensibles à la casse.</dd>

      <dt><em>MIME-type</em></dt>

      <dd>Une méthode de description du format d'un fichier consistant
      en un type de format majeur et un type de format mineur séparés
      par un slash comme dans <code>text/html</code>.</dd>

      <dt><em>env-variable</em></dt>

      <dd>Le nom d'une <a href="../env.html">variable
      d'environnement</a> définie au cours du processus de configuration
      d'Apache. Notez qu'elle peut être différente d'une variable
      d'environnement du système d'exploitation. Voir la <a href="../env.html">documentation sur les variables d'environnement</a>
      pour plus de détails.</dd>

      <dt><em>time-interval</em></dt>

      <dd>Un format d'intervalle de temps spécifique à divers paramètres de
      timeout. Les formats supportés sont les suivants :
        <ul>
          <li><em>s</em>: Secondes</li>
          <li><em>h</em>: Heures</li>
          <li><em>ms</em>: Millisecondes</li>
          <li><em>mi[n]</em>: Minutes</li>
        </ul>
        Par exemple : <code>Timeout 575ms</code>
      </dd>      
    </dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="Default" id="Default">Défaut</a> <a title="Lien permanent" href="#Default" class="permalink">&para;</a></h2>

    <p>Si la directive possède une valeur par défaut (en d'autres
    termes, si le serveur Web Apache se comporte comme si vous l'aviez
    définie à une valeur particulière, alors que vous l'avez omise dans
    votre configuration), elle est spécifiée ici. Si la directive ne
    possède pas de valeur par défaut, cette section doit spécifier
    "<em>Aucune</em>". Notez que la valeur par défaut dont il est
    question n'est pas nécessairement la même que la valeur attribuée à
    la directive dans le fichier httpd.conf par défaut distribué avec le
    serveur.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="Context" id="Context">Contexte</a> <a title="Lien permanent" href="#Context" class="permalink">&para;</a></h2>

    <p>Indique les parties des fichiers de configuration du serveur
    où cette directive est valide. Il s'agit d'une liste d'une ou
    plusieurs des valeurs suivantes séparées par des virgules :</p>

    <dl>
      <dt>configuration du serveur</dt>

      <dd>Signifie que la directive peut être utilisée dans les fichiers
      de configuration du serveur (par exemple <code>httpd.conf</code>),
      mais <strong>pas</strong> à l'intérieur d'un conteneur <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> ou <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code>. De même, elle
      n'est pas valide dans les fichiers <code>.htaccess</code>.</dd>

      <dt>serveur virtuel</dt>

      <dd>Signifie que la directive peut apparaître à l'intérieur d'un
      conteneur <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> dans les fichiers de
      configuration du serveur.</dd>

      <dt>répertoire</dt>

      <dd>Une directive spécifiée comme valide dans ce contexte peut
      être utilisée à l'intérieur de conteneurs <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code>, <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code>, <code class="directive"><a href="../mod/core.html#files">&lt;Files&gt;</a></code>, <code class="directive"><a href="../mod/core.html#if">&lt;If&gt;</a></code>, et <code class="directive"><a href="../mod/mod_proxy.html#proxy">&lt;Proxy&gt;</a></code> dans les
      fichiers de configuration du serveur, en tenant compte des
      restrictions précisées dans la documentation sur les <a href="../sections.html">Sections de configuration</a>.</dd>

      <dt>.htaccess</dt>

      <dd>Si une directive est valide dans ce contexte, cela signifie
      qu'elle peut apparaître à l'intérieur de fichiers de configuration
      de <em>niveau</em> répertoire <code>.htaccess</code>. Elle sera ou
      ne sera pas traitée, selon la définition de l'option <a href="#Override">overrides</a> pour le contexte courant.</dd>
    </dl>

    <p>La directive n'est autorisée <em>que</em> dans le contexte
    désigné ; si vous essayez de l'utiliser ailleurs, vous générerez une
    erreur de configuration qui va soit empêcher le serveur de traiter
    les requêtes correctement dans ce contexte, soit tout simplement
    empêcher le serveur de fonctionner -- en d'autres termes, le serveur
    refusera de démarrer.</p>

    <p>Les lieux de définition valides pour une directive résultent en
    fait d'un
    OU logique de tous les contextes spécifiés. En d'autres termes, une
    directive spécifiée comme valide dans "<code>configuration du
    serveur, .htaccess</code>" peut être utilisée dans le fichier
    <code>httpd.conf</code> et dans les fichiers <code>.htaccess</code>,
    mais pas dans un conteneur <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> ou <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></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="Override" id="Override">Surcharge .htaccess</a> <a title="Lien permanent" href="#Override" class="permalink">&para;</a></h2>

    <p>Ce terme indique quelle autorisation de surcharge doit être
    active pour que la directive puisse être traitée lorsqu'elle
    apparaît dans un fichier <code>.htaccess</code>. Si le <a href="#Context">context</a> de la directive ne lui permet pas
    d'apparaître dans un fichier <code>.htaccess</code>, aucun contexte
    ne sera spécifié.</p>

    <p>Les autorisations de surcharge sont activées via la directive
    <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code>, et possèdent une
    portée particulière, comme un répertoire et tous ses
    sous-répertoires, sauf si une autre directive <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> apparaît à un niveau
    inférieur. La documentation pour cette directive spécifie aussi les
    noms d'autorisations de surcharge disponibles.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="Status" id="Status">Statut</a> <a title="Lien permanent" href="#Status" class="permalink">&para;</a></h2>

    <p>Cet attribut indique le degré de rapprochement de la directive du
    coeur d'Apache ; en d'autres termes, vous pouvez être amené à
    recompiler le serveur avec un jeu de modules supplémentaires pour
    pouvoir utiliser la directive, et ainsi accéder à ses
    fonctionnalités. Les valeurs possible pour cet attribut sont :</p>

    <dl>
      <dt>Core</dt>

      <dd>Lorsqu'une directive a pour statut "Core", cela signifie
      qu'elle fait partie du coeur du serveur web Apache, et est de ce
      fait toujours disponible.</dd>

      <dt>MPM</dt>

      <dd>Une directive dont le statut est "MPM" est fournie par un <a href="../mpm.html">module Multi-Processus</a>. Ce type de
      directive sera disponible si et seulement si vous utilisez un des
      MPMs spécifiés dans la ligne <a href="#Module">Module</a> de la
      définition de la directive.</dd>

      <dt>Base</dt>

      <dd>Une directive dont le statut est "Base" est fournie par un des
      modules Apache standards qui sont compilés dans le serveur par
      défaut, et sont de ce fait toujours disponibles, sauf si vous avez
      fait en sorte de les supprimer de votre configuration.</dd>

      <dt>Extension</dt>

      <dd>Une directive dont le statut est "Extension" est fournie par
      un des modules inclus dans le kit du serveur Apache, mais qui ne
      sont pas compilés dans le serveur par défaut. Pour activer la
      directive et accéder à ses fonctionnalités, vous devez modifier
      les fichiers de configuration de la compilation du serveur, et
      recompiler Apache.</dd>

      <dt>Expérimental</dt>

      <dd>Le statut "Experimental" indique que la directive fait partie
      du kit Apache, mais que vous l'utilisez à vos risques et périls.
      La directive est documentée à titre d'exhaustivité, et n'est pas
      obligatoirement supportée. Le module qui fournit la directive peut
      être compilé par défaut dans le serveur ou non ; consultez le haut
      de la page qui décrit la directive et son module pour vérifier sa
      disponibilité.</dd>
    </dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="Module" id="Module">Module</a> <a title="Lien permanent" href="#Module" class="permalink">&para;</a></h2>

    <p>Il s'agit d'une simple liste des noms des modules sources qui
    fournissent la directive.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="Compatibility" id="Compatibility">Compatibilité</a> <a title="Lien permanent" href="#Compatibility" class="permalink">&para;</a></h2>

    <p>Si la directive ne faisait pas partie de la distribution
    originale d'Apache version 2, la version dans laquelle elle a été
    introduite est indiquée ici. Cette section indique aussi si la
    directive n'est disponible que sur certaines plates-formes.</p>
</div></div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/directive-dict.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../es/mod/directive-dict.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
<a href="../fr/mod/directive-dict.html" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ja/mod/directive-dict.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/mod/directive-dict.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/mod/directive-dict.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&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 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="https://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/mod/directive-dict.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 2020 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/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>