5669 lines
325 KiB
XML
5669 lines
325 KiB
XML
<?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>core - Serveur HTTP Apache Version 2.4</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>
|
||
<div id="page-header">
|
||
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.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.4</p>
|
||
<img alt="" src="../images/feather.png" /></div>
|
||
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
|
||
<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.4</a> > <a href="./">Modules</a></div>
|
||
<div id="page-content">
|
||
<div id="preamble"><h1>Fonctionalités de Base Apache</h1>
|
||
<div class="toplang">
|
||
<p><span>Langues Disponibles: </span><a href="../de/mod/core.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
|
||
<a href="../en/mod/core.html" hreflang="en" rel="alternate" title="English"> en </a> |
|
||
<a href="../es/mod/core.html" hreflang="es" rel="alternate" title="Español"> es </a> |
|
||
<a href="../fr/mod/core.html" title="Français"> fr </a> |
|
||
<a href="../ja/mod/core.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
|
||
<a href="../tr/mod/core.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
|
||
</div>
|
||
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Fonctionnalités de base du serveur HTTP Apache toujours
|
||
disponibles</td></tr>
|
||
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr></table>
|
||
</div>
|
||
<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><h3 class="directives">Directives</h3>
|
||
<ul id="toc">
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#acceptfilter">AcceptFilter</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#acceptpathinfo">AcceptPathInfo</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#accessfilename">AccessFileName</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#adddefaultcharset">AddDefaultCharset</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#allowencodedslashes">AllowEncodedSlashes</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#allowoverride">AllowOverride</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#allowoverridelist">AllowOverrideList</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#cgimapextension">CGIMapExtension</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#cgipassauth">CGIPassAuth</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#cgivar">CGIVar</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#contentdigest">ContentDigest</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#defaultruntimedir">DefaultRuntimeDir</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#defaulttype">DefaultType</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#define">Define</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#directory"><Directory></a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#directorymatch"><DirectoryMatch></a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#documentroot">DocumentRoot</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#else"><Else></a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#elseif"><ElseIf></a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#enablemmap">EnableMMAP</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#enablesendfile">EnableSendfile</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#error">Error</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#errordocument">ErrorDocument</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#errorlog">ErrorLog</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#errorlogformat">ErrorLogFormat</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#extendedstatus">ExtendedStatus</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#fileetag">FileETag</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#files"><Files></a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#filesmatch"><FilesMatch></a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#flushmaxpipelined">FlushMaxPipelined</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#flushmaxthreshold">FlushMaxThreshold</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#forcetype">ForceType</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#gprofdir">GprofDir</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#hostnamelookups">HostnameLookups</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#httpprotocoloptions">HttpProtocolOptions</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#if"><If></a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#ifdefine"><IfDefine></a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#ifdirective"><IfDirective></a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#iffile"><IfFile></a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#ifmodule"><IfModule></a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#ifsection"><IfSection></a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#include">Include</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#includeoptional">IncludeOptional</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#keepalive">KeepAlive</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#keepalivetimeout">KeepAliveTimeout</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#limit"><Limit></a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#limitexcept"><LimitExcept></a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#limitinternalrecursion">LimitInternalRecursion</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#limitrequestbody">LimitRequestBody</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#limitrequestfields">LimitRequestFields</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#limitrequestfieldsize">LimitRequestFieldSize</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#limitrequestline">LimitRequestLine</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#limitxmlrequestbody">LimitXMLRequestBody</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#location"><Location></a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#locationmatch"><LocationMatch></a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#loglevel">LogLevel</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#maxkeepaliverequests">MaxKeepAliveRequests</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#maxrangeoverlaps">MaxRangeOverlaps</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#maxrangereversals">MaxRangeReversals</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#maxranges">MaxRanges</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#mergeslashes">MergeSlashes</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#mergetrailers">MergeTrailers</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#mutex">Mutex</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#namevirtualhost">NameVirtualHost</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#options">Options</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#protocol">Protocol</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#protocols">Protocols</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#protocolshonororder">ProtocolsHonorOrder</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#qualifyredirecturl">QualifyRedirectURL</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#readbuffersize">ReadBufferSize</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#regexdefaultoptions">RegexDefaultOptions</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#registerhttpmethod">RegisterHttpMethod</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#rlimitcpu">RLimitCPU</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#rlimitmem">RLimitMEM</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#rlimitnproc">RLimitNPROC</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#scriptinterpretersource">ScriptInterpreterSource</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#seerequesttail">SeeRequestTail</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#serveradmin">ServerAdmin</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#serveralias">ServerAlias</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#servername">ServerName</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#serverpath">ServerPath</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#serverroot">ServerRoot</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#serversignature">ServerSignature</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#servertokens">ServerTokens</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#sethandler">SetHandler</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#setinputfilter">SetInputFilter</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#setoutputfilter">SetOutputFilter</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#stricthostcheck">StrictHostCheck</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#timeout">TimeOut</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#traceenable">TraceEnable</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#undefine">UnDefine</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#usecanonicalname">UseCanonicalName</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#usecanonicalphysicalport">UseCanonicalPhysicalPort</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#virtualhost"><VirtualHost></a></li>
|
||
</ul>
|
||
<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=core">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=core">Signaler un bug</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="directive-section"><h2><a name="acceptfilter" id="acceptfilter">Directive</a> <a name="AcceptFilter" id="AcceptFilter">AcceptFilter</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Permet d'optimiser la configuration d'une socket pour
|
||
l'écoute d'un protocole</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AcceptFilter <var>protocole</var> <var>filtre
|
||
d'acceptation</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Cette directive permet d'effectuer une optimisation de la socket
|
||
d'écoute d'un type de protocole en fonction du système
|
||
d'exploitation. Le but premier est de faire en sorte que le noyau
|
||
n'envoie pas de socket au processus du serveur jusqu'à ce que
|
||
des données soient reçues, ou qu'une requête HTTP complète soit mise
|
||
en tampon. Seuls les <a href="http://www.freebsd.org/cgi/man.cgi?query=accept_filter& sektion=9">Filtres d'acceptation de FreeBSD</a>, le filtre plus
|
||
primitif <code>TCP_DEFER_ACCEPT</code> sous Linux, et la version
|
||
optimisée d'AcceptEx() de Windows sont actuellement supportés.</p>
|
||
|
||
<p>L'utilisation de l'argument <code>none</code> va désactiver tout
|
||
filtre d'acceptation pour ce protocole. Ceci s'avère utile pour les
|
||
protocoles qui nécessitent l'envoi de données par le serveur en
|
||
premier, comme <code>ftp:</code> ou <code>nntp</code>:</p>
|
||
<pre class="prettyprint lang-config">AcceptFilter nntp none</pre>
|
||
|
||
|
||
<p>Les noms de protocoles par défaut sont <code>https</code> pour le
|
||
port 443 et <code>http</code> pour tous les autres ports. Pour
|
||
spécifier un autre protocole à utiliser avec un port en écoute,
|
||
ajoutez l'argument <var>protocol</var> à la directive <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code>.</p>
|
||
|
||
<p>Sous FreeBSD, les valeurs par défaut sont :</p>
|
||
<pre class="prettyprint lang-config">AcceptFilter http httpready
|
||
AcceptFilter https dataready</pre>
|
||
|
||
|
||
<p>Le filtre d'acceptation <code>httpready</code> met en tampon des
|
||
requêtes HTTP entières au niveau du noyau. Quand une requête
|
||
entière a été reçue, le noyau l'envoie au serveur. Voir la page de
|
||
manuel de <a href="http://www.freebsd.org/cgi/man.cgi?query=accf_http& sektion=9">accf_http(9)</a> pour plus de détails. Comme les requêtes
|
||
HTTPS sont chiffrées, celles-ci n'autorisent que le filtre <a href="http://www.freebsd.org/cgi/man.cgi?query=accf_data& sektion=9">accf_data(9)</a>.</p>
|
||
|
||
<p>Sous Linux, les valeurs par défaut sont :</p>
|
||
<pre class="prettyprint lang-config">AcceptFilter http data
|
||
AcceptFilter https data</pre>
|
||
|
||
|
||
<p>Le filtre <code>TCP_DEFER_ACCEPT</code> de Linux ne supporte pas
|
||
la mise en tampon des requêtes http. Toute valeur autre que
|
||
<code>none</code> active le filtre <code>TCP_DEFER_ACCEPT</code>
|
||
pour ce protocole. Pour plus de détails, voir la page de
|
||
manuel Linux de <a href="http://man7.org/linux/man-pages/man7/tcp.7.html">tcp(7)</a>.</p>
|
||
|
||
<p>Sous Windows, les valeurs par défaut sont :</p>
|
||
<pre class="prettyprint lang-config">AcceptFilter http connect
|
||
AcceptFilter https connect</pre>
|
||
|
||
|
||
<p>Le module MPM pour Windows mpm_winnt utilise la directive
|
||
AcceptFilter comme commutateur de l'API AcceptEx(), et ne supporte
|
||
pas la mise en tampon du protocole http. <code>connect</code>
|
||
utilise l'API AcceptEx(), extrait aussi les adresses réseau finales,
|
||
mais à l'instar de <code>none</code>, la valeur <code>connect</code>
|
||
n'attend pas la transmission des données initiales.</p>
|
||
|
||
<p>Sous Windows, <code>none</code> utilise accept() au lieu
|
||
d'AcceptEx(), et ne recycle pas les sockets entre les connexions.
|
||
Ceci s'avère utile pour les interfaces réseau dont le pilote est
|
||
défectueux, ainsi que pour certains fournisseurs de réseau comme les
|
||
pilotes vpn, ou les filtres anti-spam, anti-virus ou
|
||
anti-spyware.</p>
|
||
|
||
<div class="warning">
|
||
<h3>L'AcceptFilter <code>data</code> (Windows)</h3>
|
||
|
||
<p>Jusqu'à la version 2.4.23, le filtre d'acceptation <code>data</code>
|
||
attendait que des données aient été transmises et que le tampon de données
|
||
initial et l'adresse réseau finale aient été déterminés par l'invocation
|
||
AcceptEx(). Cette implémentation étant vulnérable à une attaque de type
|
||
denial of service, elle a été désactivée.</p>
|
||
|
||
<p>La version actuelle de httpd prend par défaut le filtre
|
||
<code>connect</code> sous Windows, et reprendra la valeur
|
||
<code>data</code> si <code>data</code> est spécifié. Il est fortement
|
||
conseillé aux utilisateurs des versions plus anciennes de définir
|
||
explicitement le filtre <code>connect</code> pour leurs AcceptFilter
|
||
comme indiqué plus haut.</p>
|
||
</div>
|
||
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#protocol">Protocol</a></code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="acceptpathinfo" id="acceptpathinfo">Directive</a> <a name="AcceptPathInfo" id="AcceptPathInfo">AcceptPathInfo</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Les ressources acceptent des informations sous forme d'un
|
||
nom de chemin en fin de requête.</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AcceptPathInfo On|Off|Default</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AcceptPathInfo Default</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>FileInfo</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
|
||
<p>Cette directive permet de définir si les requêtes contenant des
|
||
informations sous forme d'un nom de chemin suivant le nom d'un
|
||
fichier réel (ou un fichier qui n'existe pas dans un répertoire qui
|
||
existe) doivent être acceptées ou rejetées. Les scripts peuvent
|
||
accéder à cette information via la variable d'environnement
|
||
<code>PATH_INFO</code>.</p>
|
||
|
||
<p>Supposons par exemple que <code>/test/</code> pointe vers un
|
||
répertoire qui ne contient que le fichier <code>here.html</code>.
|
||
Les requêtes pour <code>/test/here.html/more</code> et
|
||
<code>/test/nothere.html/more</code> vont affecter la valeur
|
||
<code>/more</code> à la variable d'environnement
|
||
<code>PATH_INFO</code>.</p>
|
||
|
||
<p>L'argument de la directive <code class="directive">AcceptPathInfo</code>
|
||
possède trois valeurs possibles :</p>
|
||
<dl>
|
||
<dt><code>Off</code></dt><dd>Une requête ne sera acceptée que si
|
||
elle correspond à un chemin qui existe. Par conséquent, une requête
|
||
contenant une information de chemin après le nom de fichier réel
|
||
comme <code>/test/here.html/more</code> dans l'exemple ci-dessus
|
||
renverra une erreur "404 NOT FOUND".</dd>
|
||
|
||
<dt><code>On</code></dt><dd>Une requête sera acceptée si la partie
|
||
principale du chemin correspond à un fichier existant. Dans
|
||
l'exemple ci-dessus <code>/test/here.html/more</code>, la requête
|
||
sera acceptée si <code>/test/here.html</code> correspond à un nom de
|
||
fichier valide.</dd>
|
||
|
||
<dt><code>Default</code></dt><dd>Le traitement des requêtes est
|
||
déterminé par le <a href="../handler.html">gestionnaire</a> responsable de la requête.
|
||
Le gestionnaire de base pour les fichiers normaux rejette par défaut
|
||
les requêtes avec <code>PATH_INFO</code>. Les gestionnaires qui
|
||
servent des scripts, comme<a href="mod_cgi.html">cgi-script</a> et <a href="mod_isapi.html">isapi-handler</a>, acceptent en général par
|
||
défaut les requêtes avec <code>PATH_INFO</code>.</dd>
|
||
</dl>
|
||
|
||
<p>Le but premier de la directive <code>AcceptPathInfo</code> est de
|
||
vous permettre de remplacer le choix du gestionnaire d'accepter ou
|
||
de rejeter <code>PATH_INFO</code>. Ce remplacement est nécessaire
|
||
par exemple, lorsque vous utilisez un <a href="../filter.html">filtre</a>, comme <a href="mod_include.html">INCLUDES</a>, pour générer un contenu basé
|
||
sur <code>PATH_INFO</code>. Le gestionnaire de base va en général
|
||
rejeter la requête, et vous pouvez utiliser la configuration
|
||
suivante pour utiliser un tel script :</p>
|
||
<pre class="prettyprint lang-config"><Files "mypaths.shtml">
|
||
Options +Includes
|
||
SetOutputFilter INCLUDES
|
||
AcceptPathInfo On
|
||
</Files></pre>
|
||
|
||
|
||
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="accessfilename" id="accessfilename">Directive</a> <a name="AccessFileName" id="AccessFileName">AccessFileName</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nom du fichier de configuration distribué</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AccessFileName <var>nom-du-fichier</var>
|
||
[<var>nom-du-fichier</var>] ...</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AccessFileName .htaccess</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Au cours du traitement d'une requête, le serveur recherche le
|
||
premier fichier de configuration existant à partir de la liste
|
||
de noms dans chaque répertoire composant le chemin du document, à
|
||
partir du moment où les fichiers de configuration distribués sont <a href="#allowoverride">activés pour ce répertoire</a>. Par exemple
|
||
:</p>
|
||
|
||
<pre class="prettyprint lang-config">AccessFileName .acl</pre>
|
||
|
||
|
||
<p>avant de renvoyer le document
|
||
<code>/usr/local/web/index.html</code>, le serveur va rechercher les
|
||
fichiers <code>/.acl</code>, <code>/usr/.acl</code>,
|
||
<code>/usr/local/.acl</code> et <code>/usr/local/web/.acl</code>
|
||
pour y lire d'éventuelles directives, à moins quelles n'aient été
|
||
désactivées avec</p>
|
||
|
||
<pre class="prettyprint lang-config"><Directory "/">
|
||
AllowOverride None
|
||
</Directory></pre>
|
||
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#allowoverride">AllowOverride</a></code></li>
|
||
<li><a href="../configuring.html">Fichiers de configuration</a></li>
|
||
<li><a href="../howto/htaccess.html">Fichiers .htaccess</a></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="adddefaultcharset" id="adddefaultcharset">Directive</a> <a name="AddDefaultCharset" id="AddDefaultCharset">AddDefaultCharset</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Paramètre jeu de caractères par défaut à ajouter quand le
|
||
type de contenu d'une réponse est <code>text/plain</code> ou
|
||
<code>text/html</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AddDefaultCharset On|Off|<var>jeu de caractères</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AddDefaultCharset Off</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>FileInfo</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Cette directive spécifie une valeur par défaut pour le paramètre
|
||
jeu de caractères du type de média (le nom d'un codage de
|
||
caractères) à ajouter à une réponse, si et seulement si le type de
|
||
contenu de la réponse est soit <code>text/plain</code>, soit
|
||
<code>text/html</code>. Ceci va remplacer
|
||
tout jeu de caractères spécifié dans le corps de la réponse via un
|
||
élément <code>META</code>, bien que cet effet dépende en fait
|
||
souvent de la configuration du client de l'utilisateur. La
|
||
définition de <code>AddDefaultCharset Off</code> désactive cette
|
||
fonctionnalité. <code>AddDefaultCharset On</code> ajoute un jeu de
|
||
caractères par défaut de <code>iso-8859-1</code>. Toute autre valeur
|
||
peut être définie via le paramètre <var>jeu de caractères</var>, qui
|
||
doit appartenir à la liste des <a href="http://www.iana.org/assignments/character-sets">valeurs de
|
||
jeux de caractères enregistrés par l'IANA</a> à utiliser dans les
|
||
types de média Internet (types MIME).
|
||
Par exemple :</p>
|
||
|
||
<pre class="prettyprint lang-config">AddDefaultCharset utf-8</pre>
|
||
|
||
|
||
<p>La directive <code class="directive">AddDefaultCharset</code> ne doit
|
||
être utilisée que lorsque toutes les ressources textes auxquelles
|
||
elle s'applique possèdent le jeu de caractère spécifié, et qu'il est
|
||
trop contraignant de définir leur jeu de caractères
|
||
individuellement. Un exemple de ce type est l'ajout du paramètre jeu
|
||
de caractères aux ressources comportant un contenu généré, comme les
|
||
scripts CGI hérités qui peuvent être vulnérables à des attaques de
|
||
type cross-site scripting à cause des données utilisateurs incluses
|
||
dans leur sortie. Notez cependant qu'une meilleur solution consiste
|
||
à corriger (ou supprimer) ces scripts, car la définition d'un jeu de
|
||
caractères par défaut ne protège pas les utilisateurs qui ont activé
|
||
la fonctionnalité "Détection automatique de l'encodage des
|
||
caractères" dans leur navigateur.</p>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="../mod/mod_mime.html#addcharset">AddCharset</a></code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="allowencodedslashes" id="allowencodedslashes">Directive</a> <a name="AllowEncodedSlashes" id="AllowEncodedSlashes">AllowEncodedSlashes</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine si les séparateurs de chemin encodés sont
|
||
autorisés à transiter dans les URLs tels quels</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AllowEncodedSlashes On|Off|NoDecode</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AllowEncodedSlashes Off</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>L'option NoDecode est disponible depuis la version
|
||
2.3.12.</td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">AllowEncodedSlashes</code> permet
|
||
l'utilisation des URLs contenant des séparateurs de chemin
|
||
encodés dans la partie chemin
|
||
(<code>%2F</code> pour <code>/</code> et même <code>%5C</code> pour
|
||
<code>\</code> sur les systèmes concernés).</p>
|
||
|
||
<p>Avec la valeur par défaut, <code>Off</code>, de telles URLs sont
|
||
refusées et provoquent le renvoi d'une erreur 404 (Not found).</p>
|
||
|
||
<p>Avec la valeur <code>On</code>, ces URLs sont acceptées, et les
|
||
slashes encodés sont décodés comme tout autre caractère codé.</p>
|
||
|
||
<p>Avec la valeur <code>NoDecode</code>, ces URLs sont acceptées,
|
||
mais les slashes codés ne sont pas décodés et laissés dans leur état
|
||
codé.</p>
|
||
|
||
<p>Définir <code class="directive">AllowEncodedSlashes</code> à
|
||
<code>On</code> est surtout utile en association avec
|
||
<code>PATH_INFO</code>.</p>
|
||
|
||
<div class="note"><h3>Note</h3>
|
||
<p>Si le codage des slashes dans la partie chemin est nécessaire,
|
||
l'utilisation de l'option <code>NoDecode</code> est fortement
|
||
recommandée par mesure de sécurité. Permettre le décodage des
|
||
slashes pourrait éventuellement induire l'autorisation de chemins
|
||
non sûrs.</p>
|
||
</div>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#acceptpathinfo">AcceptPathInfo</a></code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="allowoverride" id="allowoverride">Directive</a> <a name="AllowOverride" id="AllowOverride">AllowOverride</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Types de directives autorisées dans les fichiers
|
||
<code>.htaccess</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AllowOverride All|None|<var>type directive</var>
|
||
[<var>type directive</var>] ...</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AllowOverride None à partir de la version 2.3.9, AllowOverride
|
||
All pour les versions antérieures</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Lorsque le serveur trouve un fichier <code>.htaccess</code> (dont
|
||
le nom est défini par la directive <code class="directive"><a href="#accessfilename">AccessFileName</a></code>), il doit savoir lesquelles
|
||
des directives placées dans ce fichier sont autorisées à modifier la
|
||
configuration préexistante.</p>
|
||
|
||
<div class="note"><h3>Valable seulement dans les sections
|
||
<Directory></h3>
|
||
La directive <code class="directive">AllowOverride</code> ne peut être
|
||
utilisée que dans les sections <code class="directive"><a href="#directory"><Directory></a></code> définies sans expressions
|
||
rationnelles, et non dans les sections <code class="directive"><a href="#location"><Location></a></code>, <code class="directive"><a href="#directorymatch"><DirectoryMatch></a></code> ou
|
||
<code class="directive"><a href="#files"><Files></a></code>.
|
||
</div>
|
||
|
||
<p>Lorsque cette directive et la directive <code class="directive"><a href="#allowoverridelist">AllowOverrideList</a></code> sont définies à <code>None</code>, les
|
||
fichiers <a href="#accessfilename">.htaccess</a> sont totalement
|
||
ignorés. Dans ce cas, le serveur n'essaiera même pas de lire les
|
||
fichiers <code>.htaccess</code> du système de fichiers.</p>
|
||
|
||
<p>Lorsque cette directive est définie à <code>All</code>, toute
|
||
directive valable dans le <a href="directive-dict.html#Context">Contexte</a> .htaccess sera
|
||
autorisée dans les fichiers <code>.htaccess</code>.</p>
|
||
|
||
<p>L'argument <var>type directive</var> peut contenir les
|
||
groupements de directives suivants (voir <a href="overrides.html">ce
|
||
document</a> pour obtenir la liste à jour des directives activées pour
|
||
chaque type de directive) :</p>
|
||
|
||
<dl>
|
||
<dt><a href="overrides.html#override-authconfig">AuthConfig</a></dt>
|
||
|
||
<dd>
|
||
|
||
Permet l'utilisation des directives d'autorisation (<code class="directive"><a href="../mod/mod_authz_dbm.html#authdbmgroupfile">AuthDBMGroupFile</a></code>,
|
||
<code class="directive"><a href="../mod/mod_authn_dbm.html#authdbmuserfile">AuthDBMUserFile</a></code>,
|
||
<code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code>,
|
||
<code class="directive"><a href="../mod/mod_authn_core.html#authname">AuthName</a></code>,
|
||
<code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code>, <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code>, <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>, <em>etc...</em>).</dd>
|
||
|
||
<dt><a href="overrides.html#override-fileinfo">FileInfo</a></dt>
|
||
|
||
<dd>
|
||
Permet l'utilisation des directives qui contrôlent les types de
|
||
documents (directives <code class="directive"><a href="#errordocument">ErrorDocument</a></code>, <code class="directive"><a href="#forcetype">ForceType</a></code>, <code class="directive"><a href="../mod/mod_negotiation.html#languagepriority">LanguagePriority</a></code>,
|
||
<code class="directive"><a href="#sethandler">SetHandler</a></code>, <code class="directive"><a href="#setinputfilter">SetInputFilter</a></code>, <code class="directive"><a href="#setoutputfilter">SetOutputFilter</a></code>, et directives du
|
||
module <code class="module"><a href="../mod/mod_mime.html">mod_mime</a></code> Add* et Remove*), des metadonnées
|
||
des documents (<code class="directive"><a href="../mod/mod_headers.html#header">Header</a></code>, <code class="directive"><a href="../mod/mod_headers.html#requestheader">RequestHeader</a></code>, <code class="directive"><a href="../mod/mod_setenvif.html#setenvif">SetEnvIf</a></code>, <code class="directive"><a href="../mod/mod_setenvif.html#setenvifnocase">SetEnvIfNoCase</a></code>, <code class="directive"><a href="../mod/mod_setenvif.html#browsermatch">BrowserMatch</a></code>, <code class="directive"><a href="../mod/mod_usertrack.html#cookieexpires">CookieExpires</a></code>, <code class="directive"><a href="../mod/mod_usertrack.html#cookiedomain">CookieDomain</a></code>, <code class="directive"><a href="../mod/mod_usertrack.html#cookiestyle">CookieStyle</a></code>, <code class="directive"><a href="../mod/mod_usertrack.html#cookietracking">CookieTracking</a></code>, <code class="directive"><a href="../mod/mod_usertrack.html#cookiename">CookieName</a></code>), des directives du
|
||
module <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> directives (<code class="directive"><a href="../mod/mod_rewrite.html#rewriteengine">RewriteEngine</a></code>, <code class="directive"><a href="../mod/mod_rewrite.html#rewriteoptions">RewriteOptions</a></code>, <code class="directive"><a href="../mod/mod_rewrite.html#rewritebase">RewriteBase</a></code>, <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code>, <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>), des directives du
|
||
module <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> directives (<code class="directive"><a href="../mod/mod_alias.html#redirect">Redirect</a></code>, <code class="directive"><a href="../mod/mod_alias.html#redirecttemp">RedirectTemp</a></code>, <code class="directive"><a href="../mod/mod_alias.html#redirectpermanent">RedirectPermanent</a></code>, <code class="directive"><a href="../mod/mod_alias.html#redirectmatch">RedirectMatch</a></code>), et de la directive
|
||
<code class="directive"><a href="../mod/mod_actions.html#action">Action</a></code> du module
|
||
<code class="module"><a href="../mod/mod_actions.html">mod_actions</a></code>.
|
||
</dd>
|
||
|
||
<dt><a href="overrides.html#override-indexes">Indexes</a></dt>
|
||
|
||
<dd>
|
||
Permet l'utilisation des directives qui contrôlent l'indexation
|
||
des répertoires (<code class="directive"><a href="../mod/mod_autoindex.html#adddescription">AddDescription</a></code>,
|
||
<code class="directive"><a href="../mod/mod_autoindex.html#addicon">AddIcon</a></code>, <code class="directive"><a href="../mod/mod_autoindex.html#addiconbyencoding">AddIconByEncoding</a></code>,
|
||
<code class="directive"><a href="../mod/mod_autoindex.html#addiconbytype">AddIconByType</a></code>,
|
||
<code class="directive"><a href="../mod/mod_autoindex.html#defaulticon">DefaultIcon</a></code>, <code class="directive"><a href="../mod/mod_dir.html#directoryindex">DirectoryIndex</a></code>, <a href="mod_autoindex.html#indexoptions.fancyindexing"><code>FancyIndexing</code></a>,
|
||
<code class="directive"><a href="../mod/mod_autoindex.html#headername">HeaderName</a></code>, <code class="directive"><a href="../mod/mod_autoindex.html#indexignore">IndexIgnore</a></code>, <code class="directive"><a href="../mod/mod_autoindex.html#indexoptions">IndexOptions</a></code>, <code class="directive"><a href="../mod/mod_autoindex.html#readmename">ReadmeName</a></code>,
|
||
<em>etc...</em>).</dd>
|
||
|
||
<dt><a href="overrides.html#override-limit">Limit</a></dt>
|
||
|
||
<dd>
|
||
Permet l'utilisation des directives contrôlant l'accès au serveur
|
||
(<code class="directive"><a href="../mod/mod_access_compat.html#allow">Allow</a></code>, <code class="directive"><a href="../mod/mod_access_compat.html#deny">Deny</a></code> et <code class="directive"><a href="../mod/mod_access_compat.html#order">Order</a></code>).</dd>
|
||
|
||
<dt>Nonfatal=[Override|Unknown|All]</dt>
|
||
|
||
<dd>
|
||
Permet d'utiliser l'option AllowOverride pour rendre les erreurs
|
||
de syntaxe non fatales dans les fichiers .htaccess : au lieu de
|
||
causer une Internal Server Error, les directives non autorisées ou
|
||
non reconnues seront ignorées et un avertissement enregistré dans
|
||
le journal :
|
||
<ul>
|
||
<li><strong>Nonfatal=Override</strong> rend les directives
|
||
interdite par AllowOverride non fatales.</li>
|
||
<li><strong>Nonfatal=Unknown</strong> rend les directives
|
||
inconnues non fatales. Sont concernées les erreurs de frappe
|
||
et les directives implémentées par un module non chargé.</li>
|
||
<li><strong>Nonfatal=All</strong> rend toutes les directives
|
||
précédentes non fatales.</li>
|
||
</ul>
|
||
<p>Notez qu'une erreur de syntaxe dans une directive valide
|
||
causera toujours une internal server error.</p>
|
||
<div class="warning"><h3>Sécurité</h3>
|
||
Les erreurs non fatales peuvent être à l'origine de problèmes
|
||
de sécurité pour les utilisateurs de fichiers .htaccess. Par
|
||
exemple, si AllowOverride interdit AuthConfig, toute
|
||
configuration utilisateur destinée à restreindre l'accès à un
|
||
site ne sera pas prise en compte.
|
||
</div>
|
||
</dd>
|
||
|
||
<dt><a href="overrides.html#override-options">Options</a>[=<var>Option</var>,...]</dt>
|
||
|
||
<dd>
|
||
Permet l'utilisation des directives contrôlant les fonctionnalités
|
||
spécifiques d'un répertoire (<code class="directive"><a href="#options">Options</a></code> et <code class="directive"><a href="../mod/mod_include.html#xbithack">XBitHack</a></code>). "Options" doit être
|
||
suivi d'un signe "égal", puis d'une liste d'options séparées par des
|
||
virgules (pas d'espaces) ; ces options doivent être définies à
|
||
l'aide de la commande <code class="directive"><a href="#options">Options</a></code>.
|
||
|
||
<div class="note"><h3>Désactivation implicite des options</h3>
|
||
<p>Bien que la liste des options disponibles dans les fichiers
|
||
.htaccess puisse être limitée par cette directive, tant qu'un
|
||
directive <code class="directive"><a href="#options">Options</a></code> est
|
||
autorisée, toute autre option héritée peut être désactivée en
|
||
utilisant la syntaxe non-relative. En d'autres termes, ce
|
||
mécanisme ne peut pas forcer une option spécifique à rester
|
||
<em>activée</em> tout en permettant à toute autre option d'être
|
||
activée.
|
||
</p></div>
|
||
|
||
<div class="example"><p><code>
|
||
AllowOverride Options=Indexes,MultiViews
|
||
</code></p></div>
|
||
|
||
</dd>
|
||
</dl>
|
||
|
||
<p>Exemple :</p>
|
||
|
||
<pre class="prettyprint lang-config">AllowOverride AuthConfig Indexes</pre>
|
||
|
||
|
||
<p>Dans l'exemple ci-dessus, toutes les directives qui ne font
|
||
partie ni du groupe <code>AuthConfig</code>, ni du groupe
|
||
<code>Indexes</code>, provoquent une erreur "internal
|
||
server error".</p>
|
||
|
||
<div class="note"><p>Pour des raisons de sécurité et de performance, ne
|
||
définissez pas <code>AllowOverride</code> à autre chose que
|
||
<code>None</code> dans votre bloc <code><Directory "/"></code>.
|
||
Recherchez plutôt (ou créez) le bloc <code><Directory></code>
|
||
qui se réfère au répertoire où vous allez précisément placer un
|
||
fichier <code>.htaccess</code>.</p>
|
||
</div>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#accessfilename">AccessFileName</a></code></li>
|
||
<li><code class="directive"><a href="#allowoverridelist">AllowOverrideList</a></code></li>
|
||
<li><a href="../configuring.html">Fichiers de configuration</a></li>
|
||
<li><a href="../howto/htaccess.html">Fichiers .htaccess</a></li>
|
||
<li><a href="overrides.html">Override Class Index for .htaccess</a></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="allowoverridelist" id="allowoverridelist">Directive</a> <a name="AllowOverrideList" id="AllowOverrideList">AllowOverrideList</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Directives autorisées dans les fichiers <code>.htaccess</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AllowOverrideList None|<var>directive</var>
|
||
[<var>directive-type</var>] ...</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AllowOverrideList None</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Lorsque le serveur trouve un fichier <code>.htaccess</code>
|
||
(comme spécifié par la directive <code class="directive"><a href="#accessfilename">AccessFileName</a></code>), il doit savoir lesquelles
|
||
des directives déclarées dans ce fichier peuvent remplacer des
|
||
directives des fichiers de configuration du serveur.</p>
|
||
|
||
<div class="note"><h3>Seulement disponible dans les sections <Directory></h3>
|
||
La directive <code class="directive">AllowOverrideList</code> n'est
|
||
disponible que dans les sections <code class="directive"><a href="#directory"><Directory></a></code> spécifiées sans expressions
|
||
rationnelles.
|
||
</div>
|
||
|
||
<p>Lorsque cette directive et la directive <code class="directive"><a href="#allowoverride">AllowOverride</a></code> sont définies à
|
||
<code>None</code>, les fichiers <a href="#accessfilename">.htaccess</a> sont totalement ignorés. Dans
|
||
ce cas, le serveur ne cherchera même pas à lire des fichiers
|
||
<code>.htaccess</code> dans le système de fichiers.</p>
|
||
|
||
<p>Example:</p>
|
||
|
||
<pre class="prettyprint lang-config">AllowOverride None
|
||
AllowOverrideList Redirect RedirectMatch</pre>
|
||
|
||
|
||
<p>Dans l'exemple ci-dessus, seules les directives
|
||
<code>Redirect</code> et <code>RedirectMatch</code> sont autorisées.
|
||
Toutes les autres provoqueront une erreur interne du serveur.</p>
|
||
|
||
<p>Example:</p>
|
||
|
||
<pre class="prettyprint lang-config">AllowOverride AuthConfig
|
||
AllowOverrideList CookieTracking CookieName</pre>
|
||
|
||
|
||
<p>Dans l'exemple ci-dessus, la directive <code class="directive"><a href="#allowoverride">AllowOverride</a></code> autorise les directives du
|
||
groupement <code>AuthConfig</code>, et
|
||
<code class="directive">AllowOverrideList</code> n'autorise que deux directives du
|
||
groupement <code>FileInfo</code>. Toutes les autres provoqueront une erreur
|
||
interne du serveur.</p>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#accessfilename">AccessFileName</a></code></li>
|
||
<li><code class="directive"><a href="#allowoverride">AllowOverride</a></code></li>
|
||
<li><a href="../configuring.html">Fichiers de configuration</a></li>
|
||
<li><a href="../howto/htaccess.html">Fichiers .htaccess</a></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="cgimapextension" id="cgimapextension">Directive</a> <a name="CGIMapExtension" id="CGIMapExtension">CGIMapExtension</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Technique permettant de localiser l'interpréteur des
|
||
scripts CGI</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CGIMapExtension <var>chemin CGI</var> <var>.extension</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>FileInfo</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>NetWare uniquement</td></tr>
|
||
</table>
|
||
<p>Cette directive permet de contrôler la manière dont Apache httpd trouve
|
||
l'interpréteur servant à exécuter les scripts CGI. Par exemple, avec
|
||
la définition <code>CGIMapExtension sys:\foo.nlm .foo</code>, tous
|
||
les fichiers scripts CGI possédant une extension <code>.foo</code>
|
||
seront passés à l'interpréteur FOO.</p>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="cgipassauth" id="cgipassauth">Directive</a> <a name="CGIPassAuth" id="CGIPassAuth">CGIPassAuth</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active la transmission d'en-têtes d'autorisation HTTP aux scripts en
|
||
tant que variables CGI</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CGIPassAuth On|Off</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>CGIPassAuth Off</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>AuthConfig</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.13 du serveur HTTP
|
||
Apache</td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">CGIPassAuth</code> permet aux
|
||
scripts d'accéder aux en-têtes d'autorisation HTTP tels que
|
||
<code>Authorization</code>, en-tête nécessaire aux scripts qui
|
||
implémente une authentification HTTP de base. Normalement, ces
|
||
en-têtes HTTP sont invisibles pour les scripts car ils leurs
|
||
permettraient de voir les identifiants et mots de passe
|
||
utilisés pour accéder au serveur lorsque l'authentification HTTP de
|
||
base est activée au niveau du serveur web. Cette directive doit être
|
||
définie à "On" lorsque des scripts sont autorisés à implémenter une
|
||
authentification HTTP de base.</p>
|
||
|
||
<p>Cette directive constitue une alternative à l'option de
|
||
compilation <code>SECURITY_HOLE_PASS_AUTHORIZATION</code> qui était
|
||
déjà disponible dans les versions précédentes du serveur HTTP
|
||
Apache.</p>
|
||
|
||
<p>Cette option est prise en compte par tout module qui utilise
|
||
<code>ap_add_common_vars()</code>, comme <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>,
|
||
<code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code>, <code class="module"><a href="../mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a></code>,
|
||
<code class="module"><a href="../mod/mod_proxy_scgi.html">mod_proxy_scgi</a></code>, etc... En particulier, elle affecte
|
||
les modules qui ne traitent pas à proprement parler les requêtes,
|
||
mais utilisent quand-même cette API, comme
|
||
<code class="module"><a href="../mod/mod_include.html">mod_include</a></code> ou <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code>. Les
|
||
modules tiers qui n'utilisent pas <code>ap_add_common_vars()</code>
|
||
peuvent aussi choisir de prendre en compte cette option.</p>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="cgivar" id="cgivar">Directive</a> <a name="CGIVar" id="CGIVar">CGIVar</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Contrôle la manière dont certaines variables CGI sont définies</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CGIVar <var>variable</var> <var>rule</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>FileInfo</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.21 du serveur HTTP Apache</td></tr>
|
||
</table>
|
||
<p>Cette directive permet de contrôler la manière dont certaines variables CGI
|
||
sont définies.</p>
|
||
|
||
<p>règles <strong>REQUEST_URI</strong> :</p>
|
||
<dl>
|
||
<dt><code>original-uri</code> (valeur par défaut)</dt>
|
||
<dd>La valeur est extraite de la requête originale, et ne tient pas compte
|
||
des redirections internes ou des sous-requêtes qui pourraient modifier la
|
||
ressource demandée.</dd>
|
||
<dt><code>current-uri</code></dt>
|
||
<dd>La valeur reflète la ressource en cours de traitement ; elle peut être
|
||
différente de la ressource demandée dans la requête initiale du client suite à
|
||
d'éventuelles redirections internes ou sous-requêtes.</dd>
|
||
</dl>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="contentdigest" id="contentdigest">Directive</a> <a name="ContentDigest" id="ContentDigest">ContentDigest</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active la génération d'un en-tête <code>Content-MD5</code>
|
||
dans la réponse HTTP</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ContentDigest On|Off</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ContentDigest Off</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>Options</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Cette directive active la génération d'un en-tête
|
||
<code>Content-MD5</code> selon les définitions des RFC 1864 et
|
||
2616.</p>
|
||
|
||
<p>MD5 est un algorithme permettant de générer un condensé (parfois
|
||
appelé "empreinte") à partir de données d'une taille aléatoire ; le
|
||
degré de précision est tel que la moindre altération des données
|
||
d'origine entraîne une altération de l'empreinte.</p>
|
||
|
||
<p>L'en-tête <code>Content-MD5</code> permet de vérifier
|
||
l'intégrité de la réponse HTTP dans son ensemble. Un serveur mandataire
|
||
ou un client peut utiliser cet en-tête pour rechercher une
|
||
éventuelle modification accidentelle de la réponse au cours de sa
|
||
transmission. Exemple d'en-tête :</p>
|
||
|
||
<div class="example"><p><code>
|
||
Content-MD5: AuLb7Dp1rqtRtxz2m9kRpA==
|
||
</code></p></div>
|
||
|
||
<p>Notez que des problèmes de performances peuvent affecter votre
|
||
serveur, car l'empreinte est générée pour chaque requête (il n'y a
|
||
pas de mise en cache).</p>
|
||
|
||
<p>L'en-tête <code>Content-MD5</code> n'est envoyé qu'avec les
|
||
documents servis par le module <code class="module"><a href="../mod/core.html">core</a></code>, à l'exclusion
|
||
de tout autre module. Ainsi, les documents SSI, les sorties de
|
||
scripts CGI, et les réponses à des requêtes partielles (byte range)
|
||
ne comportent pas cet en-tête.</p>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="defaultruntimedir" id="defaultruntimedir">Directive</a> <a name="DefaultRuntimeDir" id="DefaultRuntimeDir">DefaultRuntimeDir</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Répertoire de base des fichiers créés au cours de l'exécution du serveur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DefaultRuntimeDir <var>chemin-répertoire</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>DefaultRuntimeDir DEFAULT_REL_RUNTIMEDIR (logs/)</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.4.2 du serveur HTTP Apache</td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">DefaultRuntimeDir</code> permet de
|
||
définir le répertoire dans lequel le serveur va créer les différents
|
||
fichiers relatifs à son exécution (mémoire partagée, verrous,
|
||
etc...). Si le chemin spécifié est relatif, le chemin absolu sera
|
||
généré relativement à la valeur de la directive
|
||
<code class="directive">ServerRoot</code></p>
|
||
|
||
<p><strong>Example</strong></p>
|
||
<pre class="prettyprint lang-config">DefaultRuntimeDir scratch/</pre>
|
||
|
||
|
||
<p>La valeur par défaut de la directive
|
||
<code class="directive">DefaultRuntimeDir</code> peut être modifiée en
|
||
changeant la valeur de la macro <code>DEFAULT_REL_RUNTIMEDIR</code>
|
||
définie à la compilation.</p>
|
||
|
||
<p>Note: si la valeur de <code class="directive">ServerRoot</code> n'a pas
|
||
été spécifiée avant d'utiliser cette directive, c'est la valeur par
|
||
défaut de <code class="directive">ServerRoot</code> qui sera utilisée pour
|
||
définir la base du répertoire.</p>
|
||
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li>Voir les <a href="../misc/security_tips.html#serverroot">conseils à propos de
|
||
sésurité</a> pour plus d'informations en vue de définir correctement les
|
||
permissions sur la racine du serveur <code class="directive">ServerRoot</code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="defaulttype" id="defaulttype">Directive</a> <a name="DefaultType" id="DefaultType">DefaultType</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Les seuls effets de cette directive sont des émissions
|
||
d'avertissements si sa valeur est différente de <code>none</code>. Dans
|
||
les versions précédentes, DefaultType permettait de spécifier un type de
|
||
média à assigner par défaut au contenu d'une réponse pour lequel aucun
|
||
autre type de média n'avait été trouvé.
|
||
</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DefaultType <var>type média|none</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>DefaultType none</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>FileInfo</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>L'argument <code>none</code> est disponible dans les
|
||
versions d'Apache httpd 2.2.7 et supérieures. Tous les autres choix sont
|
||
DESACTIVÉS à partir des version 2.3.x.</td></tr>
|
||
</table>
|
||
<p>Cette directive a été désactivée. Pour la compatibilité
|
||
ascendante avec les anciens fichiers de configuration, elle peut
|
||
être spécifiée avec la valeur <code>none</code>, c'est à dire sans
|
||
type de médium par défaut. Par exemple :</p>
|
||
|
||
<pre class="prettyprint lang-config">DefaultType None</pre>
|
||
|
||
|
||
<p><code>DefaultType None</code> n'est disponible que dans les
|
||
versions d'Apache 2.2.7 et supérieures.</p>
|
||
|
||
<p>Utilisez le fichier de configuration mime.types et la directive
|
||
<code class="directive"><a href="../mod/mod_mime.html#addtype">AddType</a></code> pour configurer
|
||
l'assignement d'un type de médium via les extensions de fichiers, ou
|
||
la directive <code class="directive"><a href="#forcetype">ForceType</a></code> pour
|
||
attribuer un type de médium à des ressources spécifiques. Dans le
|
||
cas contraire, le serveur enverra sa réponse sans champ d'en-tête
|
||
Content-Type, et le destinataire devra déterminer lui-même le type
|
||
de médium.</p>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="define" id="define">Directive</a> <a name="Define" id="Define">Define</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Permet de définir une variable</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Define <var>nom-paramètre</var> [<var>valeur-paramètre</var>]</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Avec un seul paramètre, l'effet de la directive
|
||
<code class="directive">Define</code> est identique à celui de l'argument
|
||
<code>-D</code> du programme <code class="program"><a href="../programs/httpd.html">httpd</a></code>. Il permet de
|
||
modifier le comportement des sections <code class="directive"><a href="#ifdefine"><IfDefine></a></code> sans avoir à ajouter d'argument
|
||
<code>-D</code> au sein des scripts de démarrage.</p>
|
||
|
||
<p>De plus, le second paramètre permet d'affecter une valeur à la
|
||
variable définie par le premier. Cette variable peut être référencée
|
||
dans le fichier de configuration via la syntaxe <code>${VAR}</code>.
|
||
La portée de la variable est toujours globale, et n'est jamais
|
||
limitée à la section de configuration courante.</p>
|
||
|
||
<pre class="prettyprint lang-config"><IfDefine TEST>
|
||
Define servername test.example.com
|
||
</IfDefine>
|
||
<IfDefine !TEST>
|
||
Define servername www.example.com
|
||
Define SSL
|
||
</IfDefine>
|
||
|
||
DocumentRoot "/var/www/${servername}/htdocs"</pre>
|
||
|
||
|
||
<p>Le caractère ":" est interdit dans les noms de variables afin
|
||
d'éviter les conflits avec la syntaxe de la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewritemap">RewriteMap</a></code>.</p>
|
||
|
||
<div class="note"><h3>Portée de la directive et pièges à éviter</h3>
|
||
<p>Si cette directive est définie au sein d'un bloc VirtualHost, les
|
||
changements qu'elle induit sont visibles de toute directive
|
||
ultérieure, au delà de tout bloc VirtualHost.</p>
|
||
</div>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#undefine">UnDefine</a></code></li>
|
||
<li><code class="directive"><a href="#ifdefine">IfDefine</a></code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="directory" id="directory">Directive</a> <a name="Directory" id="Directory"><Directory></a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Regroupe un ensemble de directives qui ne s'appliquent
|
||
qu'au répertoire concerné du système de fichiers, à ses
|
||
sous-répertoires, et à leur contenu.</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code><Directory <var>chemin répertoire</var>>
|
||
... </Directory></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Les balises <code class="directive"><Directory></code> et
|
||
<code></Directory></code> permettent de regrouper un ensemble
|
||
de directives qui ne s'appliquent qu'au répertoire précisé,
|
||
à ses sous-répertoires, et aux fichiers situés dans ces
|
||
sous-répertoires. Toute directive
|
||
autorisée dans un contexte de répertoire peut être utilisée.
|
||
<var>chemin répertoire</var> est soit le chemin absolu d'un
|
||
répertoire, soit une chaîne de caractères avec caractères génériques
|
||
utilisant la comparaison Unix de style shell. Dans une chaîne de
|
||
caractères avec caractères génériques, <code>?</code> correspond à
|
||
un caractère quelconque, et <code>*</code> à toute chaîne de
|
||
caractères. Les intervalles de caractères <code>[]</code> sont aussi
|
||
autorisés. Aucun caractère générique ne peut remplacer le caractère
|
||
`/', si bien que l'expression <code><Directory
|
||
"/*/public_html"></code> ne conviendra pas pour le chemin
|
||
* <code>/home/user/public_html</code>, alors que <code><Directory
|
||
"/home/*/public_html"></code> conviendra. Exemple :</p>
|
||
|
||
<pre class="prettyprint lang-config"><Directory "/usr/local/httpd/htdocs">
|
||
Options Indexes FollowSymLinks
|
||
</Directory></pre>
|
||
|
||
|
||
<p>Les chemins de répertoires contenant des espaces <em>doivent</em> être
|
||
entourés de guillemets afin d'empêcher l'interprétation de ces
|
||
espaces comme fins d'arguments.</p>
|
||
|
||
<div class="note">
|
||
<p>Soyez prudent avec l'argument <var>chemin répertoire</var> : il
|
||
doit correspondre exactement au chemin du système de fichier
|
||
qu'Apache httpd utilise pour accéder aux fichiers. Les directives
|
||
comprises dans une section <code><Directory></code> ne
|
||
s'appliqueront pas aux fichiers du même répertoire auxquels on
|
||
aura accédé via un chemin différent, per exemple via un lien
|
||
symbolique.</p>
|
||
</div>
|
||
|
||
<p> Les <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">Expressions rationnelles</a>
|
||
peuvent aussi être utilisées en ajoutant le caractère
|
||
<code>~</code>. Par exemple :</p>
|
||
|
||
<pre class="prettyprint lang-config"><Directory ~ "^/www/[0-9]{3}">
|
||
|
||
</Directory></pre>
|
||
|
||
|
||
<p>pourra correspondre à tout répertoire situé dans /www/ et dont le
|
||
nom se compose de trois chiffres.</p>
|
||
|
||
<p>Si plusieurs sections <code class="directive"><Directory></code> (sans expression rationnelle)
|
||
correspondent au répertoire (ou à un de ses parents) qui contient le
|
||
document, les directives de la section <code class="directive"><Directory></code> dont le chemin est le plus
|
||
court sont appliquées en premier, en s'intercalant avec les
|
||
directives des fichiers <a href="#accessfilename">.htaccess</a>. Par
|
||
exemple, avec</p>
|
||
|
||
<pre class="prettyprint lang-config"><Directory "/">
|
||
AllowOverride None
|
||
</Directory>
|
||
|
||
<Directory "/home">
|
||
AllowOverride FileInfo
|
||
</Directory></pre>
|
||
|
||
|
||
<p>l'accès au document <code>/home/web/dir/doc.html</code> emprunte
|
||
le chemin suivant :</p>
|
||
|
||
<ul>
|
||
<li>Aplication de la directive <code>AllowOverride None</code>
|
||
(qui désactive les fichiers <code>.htaccess</code>).</li>
|
||
|
||
<li>Application de la directive <code>AllowOverride
|
||
FileInfo</code> (pour le répertoire <code>/home</code>).</li>
|
||
|
||
<li>Application de toute directive <code>FileInfo</code> qui se
|
||
trouverait dans d'éventuels fichiers <code>/home/.htaccess</code>,
|
||
<code>/home/web/.htaccess</code> ou
|
||
<code>/home/web/dir/.htaccess</code>, dans cet ordre.</li>
|
||
</ul>
|
||
|
||
<p>Les directives associées aux répertoires sous forme d'expressions
|
||
rationnelles ne sont prises en compte qu'une fois toutes les
|
||
directives des sections sans expressions rationnelles appliquées.
|
||
Alors, tous les répertoires avec expressions rationnelles sont
|
||
testés selon l'ordre dans lequel ils apparaissent dans le fichier de
|
||
configuration. Par exemple, avec</p>
|
||
|
||
<pre class="prettyprint lang-config"><Directory ~ "abc$">
|
||
# ... directives ici ...
|
||
</Directory></pre>
|
||
|
||
|
||
<p>la section avec expression rationnelle ne sera prise en compte
|
||
qu'après les sections <code class="directive"><Directory></code> sans expression rationnelle
|
||
et les fichiers <code>.htaccess</code>. Alors, l'expression
|
||
rationnelle conviendra pour <code>/home/abc/public_html/abc</code>
|
||
et la section <code class="directive"><Directory></code>
|
||
correspondante s'appliquera.</p>
|
||
|
||
<p><strong>Notez que la politique d'accès par défaut
|
||
dans les sections <code><Directory "/"></code> consiste à
|
||
autoriser tout accès sans restriction. Ceci signifie qu'Apache httpd va servir tout fichier
|
||
correspondant à une URL. Il est recommandé de modifier cette
|
||
situation à l'aide d'un bloc du style</strong></p>
|
||
|
||
<pre class="prettyprint lang-config"><Directory "/">
|
||
Require all denied
|
||
</Directory></pre>
|
||
|
||
|
||
<p><strong>puis d'affiner la configuration pour les répertoires que vous
|
||
voulez rendre accessibles. Voir la page <a href="../misc/security_tips.html">Conseils à propos de sécurité</a>
|
||
pour plus de détails.</strong></p>
|
||
|
||
<p>Les sections <code class="directive"><Directory></code> se situent
|
||
dans le fichier <code>httpd.conf</code>. Les directives <code class="directive"><Directory></code> ne peuvent pas être imbriquées
|
||
et ne sont pas autorisées dans les sections <code class="directive"><a href="#limit"><Limit></a></code> ou <code class="directive"><a href="#limitexcept"><LimitExcept></a></code>.</p>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><a href="../sections.html">Comment fonctionnent les sections
|
||
<Directory>, <Location> et <Files></a> pour des
|
||
explications à propos de la manière dont ces différentes sections se
|
||
combinent entre elles à la réception d'une requête</li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="directorymatch" id="directorymatch">Directive</a> <a name="DirectoryMatch" id="DirectoryMatch"><DirectoryMatch></a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Regroupe des directives qui s'appliquent au contenu de répertoires
|
||
du système de fichiers correspondant à une expression rationnelle</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code><DirectoryMatch <var>regex</var>>
|
||
... </DirectoryMatch></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Les balises <code class="directive"><DirectoryMatch></code>
|
||
et <code></DirectoryMatch></code> permettent de regrouper un
|
||
ensemble de directives qui ne s'appliqueront qu'au répertoire
|
||
précisé (et aux fichiers qu'il contient), comme pour la section <code class="directive"><a href="#directory"><Directory></a></code>. Cependant, le
|
||
répertoire est précisé sous la forme d'une <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression rationnelle</a>. Par exemple :</p>
|
||
|
||
<pre class="prettyprint lang-config"><DirectoryMatch "^/www/(.+/)?[0-9]{3}/">
|
||
# ...
|
||
</DirectoryMatch></pre>
|
||
|
||
|
||
<p>convient pour les sous-répertoires de <code>/www/</code> dont
|
||
le nom se compose de trois chiffres.</p>
|
||
|
||
<div class="note"><h3>Compatibilité</h3>
|
||
Avant la version 2.3.9, cette directive s'appliquait aussi aux
|
||
sous-répertoires (comme la directive <code class="directive"><a href="#directory"><Directory></a></code>), et ne tenait pas compte du
|
||
symbole de fin de ligne ($). Depuis la version 2.3.9, seuls les
|
||
répertoires qui correspondent à l'expression sont affectés par les
|
||
directives contenues dans la section.
|
||
</div>
|
||
|
||
<div class="note"><h3>slash de fin</h3>
|
||
Cette directive s'applique aux requêtes pour des répertoires avec
|
||
ou sans slash de fin ; les expressions contenant un symbole de fin
|
||
de ligne ($) doivent donc faire l'objet d'une attention
|
||
particulière.
|
||
</div>
|
||
|
||
<p>A partir de la version 2.4.8, les groupes nommés et les
|
||
références arrières sont extraits et enregistrés dans
|
||
l'environnement avec leur nom en majuscules et préfixé
|
||
par "MATCH_". Ceci permet
|
||
de référencer des URLs dans des <a href="../expr.html">expressions</a>
|
||
ou au sein de modules comme <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>. Pour
|
||
éviter toute confusion, les références arrières numérotées (non
|
||
nommées) sont ignorées. Vous devez utiliser à la place des groupes
|
||
nommés.</p>
|
||
|
||
<pre class="prettyprint lang-config"><DirectoryMatch "^/var/www/combined/(?<sitename>[^/]+)">
|
||
Require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
|
||
</DirectoryMatch></pre>
|
||
|
||
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#directory"><Directory></a></code>
|
||
pour une description de la manière dont les expressions rationnelles
|
||
sont traitées en présence d'autres sections <code class="directive"><Directory></code> sans expressions rationnelles</li>
|
||
<li><a href="../sections.html">Comment fonctionnent les sections
|
||
<Directory>, <Location> et <Files></a> pour une
|
||
explication à propos de la manière dont ces différentes sections se
|
||
combinent entre elles à la réception d'une requête</li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="documentroot" id="documentroot">Directive</a> <a name="DocumentRoot" id="DocumentRoot">DocumentRoot</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Racine principale de l'arborescence des documents visible
|
||
depuis Internet</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DocumentRoot <var>chemin répertoire</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>DocumentRoot "/usr/local/apache/htdocs"</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Cette directive permet de définir le répertoire à partir duquel
|
||
<code class="program"><a href="../programs/httpd.html">httpd</a></code> va servir les fichiers. S'il ne correspond
|
||
pas à un <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code>, le chemin
|
||
de l'URL sera ajouté par le serveur à la racine des documents afin
|
||
de construire le chemin du document recherché. Exemple :</p>
|
||
|
||
<pre class="prettyprint lang-config">DocumentRoot "/usr/web"</pre>
|
||
|
||
|
||
<p>un accès à <code>http://my.example.com/index.html</code> se
|
||
réfère alors à <code>/usr/web/index.html</code>. Si <var>chemin
|
||
répertoire</var> n'est pas un chemin absolu, il est considéré comme
|
||
relatif au chemin défini par la directive <code class="directive"><a href="#serverroot">ServerRoot</a></code>.</p>
|
||
|
||
<p>Le répertoire défini par la directive
|
||
<code class="directive">DocumentRoot</code> ne doit pas comporter de slash
|
||
final.</p>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><a href="../urlmapping.html#documentroot">Mise en
|
||
correspondance des URLs avec le système de fichiers</a></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="else" id="else">Directive</a> <a name="Else" id="Else"><Else></a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Contient des directives qui ne s'appliquent que si la
|
||
condition correspondant à la section <code class="directive"><a href="#if"><If></a></code> ou <code class="directive"><a href="#elseif"><ElseIf></a></code> précédente n'est pas satisfaite par la
|
||
requête à l'exécution</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code><Else> ... </Else></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>All</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Les conditions imbriquées sont supportées à partir de la version
|
||
2.4.26 du serveur HTTP Apache</td></tr>
|
||
</table>
|
||
<p>La section <code class="directive"><Else></code> applique
|
||
les directives qu'elle contient si et seulement si les conditions
|
||
correspondant à la section <code class="directive"><If></code>
|
||
ou <code class="directive"><ElseIf></code> immédiatement
|
||
supérieure et dans la même portée n'ont pas été satisfaites. Par
|
||
exemple, dans :</p>
|
||
|
||
<pre class="prettyprint lang-config"><If "-z req('Host')">
|
||
# ...
|
||
</If>
|
||
<Else>
|
||
# ...
|
||
</Else></pre>
|
||
|
||
|
||
<p>La condition de la section <code class="directive"><If></code> serait satisfaite pour les requêtes
|
||
HTTP/1.0 sans en-tête <var>Host:</var>, alors que celle de la section
|
||
<code class="directive"><Else></code> le serait pour les
|
||
requêtes comportant un en-tête <var>Host:</var>.</p>
|
||
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#if"><If></a></code></li>
|
||
<li><code class="directive"><a href="#elseif"><ElseIf></a></code></li>
|
||
<li><a href="../sections.html">Fonctionnement des sections <Directory>, <Location>,
|
||
<Files></a> pour une explication de la manière dont ces
|
||
différentes section se combinent entre elles lorsqu'une requête est
|
||
reçue. Les directives <code class="directive"><If></code>,
|
||
<code class="directive"><ElseIf></code>, et <code class="directive"><Else></code> s'appliquent en dernier.</li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="elseif" id="elseif">Directive</a> <a name="ElseIf" id="ElseIf"><ElseIf></a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Contient des directives qui ne s'appliquent que si la
|
||
condition correspondante est satisfaite par une requête à l'exécution,
|
||
alors que la condition correspondant à la section <code class="directive"><a href="#if"><If></a></code> ou <code class="directive"><ElseIf></code> précédente ne l'était pas.</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code><ElseIf <var>expression</var>> ... </ElseIf></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>All</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Les conditions imbriquées sont supportées à partir de la version
|
||
2.4.26 du serveur HTTP Apache</td></tr>
|
||
</table>
|
||
<p>La section <code class="directive"><ElseIf></code> applique
|
||
les directives qu'elle contient si et seulement si d'une part la
|
||
condition correspondante est satisfaite, et d'autre part la condition
|
||
correspondant à la section <code class="directive"><If></code>
|
||
ou <code class="directive"><ElseIf></code> de la même portée ne
|
||
l'est pas. Par exemple, dans :</p>
|
||
|
||
<pre class="prettyprint lang-config"><If "-R '10.1.0.0/16'">
|
||
#...
|
||
</If>
|
||
<ElseIf "-R '10.0.0.0/8'">
|
||
#...
|
||
</ElseIf>
|
||
<Else>
|
||
#...
|
||
</Else></pre>
|
||
|
||
|
||
<p>La condition correspondant à la section <code class="directive"><ElseIf></code> est satisfaite si l'adresse
|
||
distante de la requête appartient au sous-réseau 10.0.0.0/8, mais
|
||
pas si elle appartient au sous-réseau 10.1.0.0/16.</p>
|
||
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><a href="../expr.html">Les expressions dans le serveur HTTP
|
||
Apache</a>, pour une référence complète et d'autres exemples.</li>
|
||
<li><code class="directive"><a href="#if"><If></a></code></li>
|
||
<li><code class="directive"><a href="#else"><Else></a></code></li>
|
||
<li><a href="../sections.html">Fonctionnement des sections <Directory>, <Location>,
|
||
<Files></a> pour une explication de la manière dont ces
|
||
différentes section se combinent entre elles lorsqu'une requête est
|
||
reçue. Les directives <code class="directive"><If></code>,
|
||
<code class="directive"><ElseIf></code>, et <code class="directive"><Else></code> s'appliquent en dernier.</li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="enablemmap" id="enablemmap">Directive</a> <a name="EnableMMAP" id="EnableMMAP">EnableMMAP</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise la projection en mémoire (Memory-Mapping) pour
|
||
lire les fichiers pendant qu'ils sont servis</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>EnableMMAP On|Off</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>EnableMMAP On</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>FileInfo</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Cette directive définit si <code class="program"><a href="../programs/httpd.html">httpd</a></code> peut utiliser
|
||
la projection en mémoire (Memory-Mapping) quand il doit lire le contenu
|
||
d'un fichier pendant qu'il est servi. Par défaut, lorsque le
|
||
traitement d'une requête requiert l'accès aux données contenues dans
|
||
un fichier -- par exemple, pour servir un fichier interprété par le
|
||
serveur à l'aide de <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> -- Apache httpd projette
|
||
le fichier en mémoire si le système d'exploitation le permet.</p>
|
||
|
||
<p>Cette projection en mémoire induit parfois une amélioration des
|
||
performances. Sur certains systèmes cependant, il est préférable de
|
||
désactiver la projection en mémoire afin d'éviter certains problèmes
|
||
opérationnels :</p>
|
||
|
||
<ul>
|
||
<li>Sur certains systèmes multi-processeurs, la projection en
|
||
mémoire peut dégrader les performances du programme
|
||
<code class="program"><a href="../programs/httpd.html">httpd</a></code>.</li>
|
||
<li>S'il fait l'objet d'une projection en mémoire par
|
||
<code class="program"><a href="../programs/httpd.html">httpd</a></code>, la suppression ou la troncature d'un
|
||
fichier peut provoquer un crash de <code class="program"><a href="../programs/httpd.html">httpd</a></code> avec une
|
||
erreur de segmentation.</li>
|
||
</ul>
|
||
|
||
<p>Pour les configurations de serveur sujettes à ce genre de
|
||
problème, il est préférable de désactiver la projection en mémoire
|
||
des fichiers servis en spécifiant :</p>
|
||
|
||
<pre class="prettyprint lang-config">EnableMMAP Off</pre>
|
||
|
||
|
||
<p>Pour les montages NFS, cette fonctionnalité peut être
|
||
explicitement désactivée pour les fichiers concernés en spécifiant
|
||
:</p>
|
||
|
||
<pre class="prettyprint lang-config"><Directory "/path-to-nfs-files">
|
||
EnableMMAP Off
|
||
</Directory></pre>
|
||
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="enablesendfile" id="enablesendfile">Directive</a> <a name="EnableSendfile" id="EnableSendfile">EnableSendfile</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise le support sendfile du noyau pour servir les
|
||
fichiers aux clients</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>EnableSendfile On|Off</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>EnableSendfile Off</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>FileInfo</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Par défaut à Off depuis la version 2.3.9.</td></tr>
|
||
</table>
|
||
<p>Cette directive définit si le programme <code class="program"><a href="../programs/httpd.html">httpd</a></code>
|
||
peut utiliser le support sendfile du noyau pour transmettre le
|
||
contenu des fichiers aux clients. Par défaut, lorsque le traitement
|
||
d'une requête ne requiert pas l'accès aux données contenues dans un
|
||
fichier -- par exemple, pour la transmission d'un fichier statique
|
||
-- Apache httpd utilise sendfile pour transmettre le contenu du fichier
|
||
sans même lire ce dernier, si le système d'exploitation le
|
||
permet.</p>
|
||
|
||
<p>Ce mécanisme sendfile évite la séparation des opérations de
|
||
lecture et d'envoi, ainsi que les réservations de tampons. sur
|
||
certains systèmes cependant, ou sous certains systèmes de fichiers,
|
||
il est préférable de désactiver cette fonctionnalité afin d'éviter
|
||
certains problèmes opérationnels :</p>
|
||
|
||
<ul>
|
||
<li>Certains systèmes peuvent présenter un support sendfile
|
||
défectueux que le système de compilation n'a pas détecté, en
|
||
particulier si les exécutables ont été compilés sur une autre
|
||
machine, puis copiés sur la première avec un support sendfile
|
||
défectueux.</li>
|
||
<li>Sous Linux, l'utilisation de sendfile induit des bogues lors de
|
||
la récupération des paquets de vérification TCP (TCP-checksum) avec
|
||
certaines cartes réseau lorsqu'on utilise IPv6.</li>
|
||
<li>Sous Linux sur Itanium, <code>sendfile</code> peut s'avérer incapable de
|
||
traiter les fichiers de plus de 2 Go.</li>
|
||
<li>Avec un montage réseau de <code class="directive"><a href="#documentroot">DocumentRoot</a></code> (par exemple NFS, SMB, CIFS,
|
||
FUSE), le
|
||
noyau peut s'avérer incapable de servir un fichier de ce montage
|
||
réseau en passant par son propre cache.</li>
|
||
</ul>
|
||
|
||
<p>Pour les configurations de serveur non sujettes à ce genre de
|
||
problème, vous pouvez activer cette fonctionnalité en
|
||
spécifiant :</p>
|
||
|
||
<pre class="prettyprint lang-config">EnableSendfile On</pre>
|
||
|
||
|
||
<p>Pour les montages réseau, cette fonctionnalité peut être
|
||
explicitement désactivée pour les fichiers concernés en spécifiant
|
||
:</p>
|
||
|
||
<pre class="prettyprint lang-config"><Directory "/path-to-nfs-files">
|
||
EnableSendfile Off
|
||
</Directory></pre>
|
||
|
||
<p>Veuillez noter que la configuration de la directive
|
||
<code class="directive">EnableSendfile</code> dans un contexte de répertoire
|
||
ou de fichier .htaccess n'est pas supportée par
|
||
<code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code>. Le module ne prend en compte la
|
||
définition de <code class="directive">EnableSendfile</code> que dans un
|
||
contexte global.
|
||
</p>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="error" id="error">Directive</a> <a name="Error" id="Error">Error</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Interrompt la lecture de la configuration avec un message
|
||
d'erreur personnalisé</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Error <var>message</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>à partir de la version 2.3.9</td></tr>
|
||
</table>
|
||
<p>Si une erreur peut être détectée dans la configuration, souvent
|
||
un module manquant, cette
|
||
directive peut être utilisée pour générer un message d'erreur
|
||
personnalisé, et interrompre la lecture de la configuration. </p>
|
||
|
||
<pre class="prettyprint lang-config"># Exemple
|
||
# vérification du chargement de mod_include
|
||
<IfModule !include_module>
|
||
Error "mod_include is required by mod_foo. Load it with LoadModule."
|
||
</IfModule>
|
||
|
||
# vérification de la définition de SSL ou (exclusif) NOSSL
|
||
<IfDefine SSL>
|
||
<IfDefine NOSSL>
|
||
Error "Both SSL and NOSSL are defined. Define only one of them."
|
||
</IfDefine>
|
||
</IfDefine>
|
||
<IfDefine !SSL>
|
||
<IfDefine !NOSSL>
|
||
Error "Either SSL or NOSSL must be defined."
|
||
</IfDefine>
|
||
</IfDefine></pre>
|
||
|
||
|
||
<div class="warning"><h3>Note</h3>
|
||
<p>Cette directive est évaluée lors du traitement de la configuration,
|
||
et non à l'exécution. Par conséquent, elle ne peut pas être évaluée de
|
||
manière conditionnelle en l'incluant dans une section <code class="directive"><a href="#if"><If></a></code>.</p>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="errordocument" id="errordocument">Directive</a> <a name="ErrorDocument" id="ErrorDocument">ErrorDocument</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Document que le serveur renvoie au client en cas
|
||
d'erreur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ErrorDocument <var>code erreur</var> <var>document</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>FileInfo</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Apache httpd peut traiter les problèmes et les erreurs de quatre
|
||
manières,</p>
|
||
|
||
<ol>
|
||
<li>afficher un simple message d'erreur au contenu fixe</li>
|
||
|
||
<li>afficher un message personnalisé</li>
|
||
|
||
<li>rediriger en interne vers un <var>chemin d'URL</var> local pour traiter
|
||
le problème ou l'erreur</li>
|
||
|
||
<li>rediriger vers une <var>URL</var> externe pour traiter
|
||
le problème ou l'erreur</li>
|
||
</ol>
|
||
|
||
<p>La première option constitue le comportement par défaut; pour
|
||
choisir une des trois autres options, il faut configurer Apache à
|
||
l'aide de la directive <code class="directive">ErrorDocument</code>, suivie
|
||
du code de la réponse HTTP et d'une URL ou d'un message. Apache
|
||
httpd fournit parfois des informations supplémentaires à propos du
|
||
problème ou de l'erreur.</p>
|
||
|
||
<p>A partir de la version 2.4.13, il est possible d'utiliser la <a href="../expr.html">syntaxe des expressions</a> dans cette directive
|
||
afin de générer des chaînes et URLs dynamiques.</p>
|
||
|
||
<p>Les URLs peuvent commencer par un slash (/) pour les chemins web
|
||
locaux (relatifs au répertoire défini par la directive <code class="directive"><a href="#documentroot">DocumentRoot</a></code>), ou se présenter sous la
|
||
forme d'une URL complète que le client pourra résoudre.
|
||
Alternativement, un message à afficher par le navigateur pourra être
|
||
fourni. Notez que la décision de considérer le paramètre comme URL,
|
||
chemin ou message intervient avant toute interprètation
|
||
d'expression. Exemples :</p>
|
||
|
||
<pre class="prettyprint lang-config">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 /errors/forbidden.py?referrer=%{escape:%{HTTP_REFERER}}</pre>
|
||
|
||
|
||
<p>De plus, on peut spécifier la valeur spéciale <code>default</code>
|
||
pour indiquer l'utilisation d'un simple message d'Apache httpd codé en
|
||
dur. Bien que non nécessaire dans des circonstances normales, la
|
||
spécification de la valeur <code>default</code> va permettre de
|
||
rétablir l'utilisation du simple message d'Apache httpd codé en dur pour
|
||
les configurations qui sans cela, hériteraient d'une directive
|
||
<code class="directive">ErrorDocument</code> existante.</p>
|
||
|
||
<pre class="prettyprint lang-config">ErrorDocument 404 /cgi-bin/bad_urls.pl
|
||
|
||
<Directory "/web/docs">
|
||
ErrorDocument 404 default
|
||
</Directory></pre>
|
||
|
||
|
||
<p>Notez que lorsque vous spécifiez une directive
|
||
<code class="directive">ErrorDocument</code> pointant vers une URL distante
|
||
(c'est à dire tout ce qui commence par le préfixe http), le serveur
|
||
HTTP Apache va
|
||
envoyer une redirection au client afin de lui indiquer où trouver le
|
||
document, même dans le cas où ce document se trouve sur le serveur
|
||
local. Ceci a de nombreuses conséquences dont la plus importante
|
||
réside dans le fait que le client ne recevra pas le code d'erreur
|
||
original, mais au contraire un code de statut de redirection. Ceci
|
||
peut en retour semer la confusion chez les robots web et divers
|
||
clients qui tentent de déterminer la validité d'une URL en examinant
|
||
le code de statut. De plus, si vous utilisez une URL distante avec
|
||
<code>ErrorDocument 401</code>, le client ne saura pas qu'il doit
|
||
demander un mot de passe à l'utilisateur car il ne recevra pas le
|
||
code de statut 401. C'est pourquoi, <strong>si vous utilisez une
|
||
directive <code>ErrorDocument 401</code>, elle devra faire référence
|
||
à un document par le biais d'un chemin local.</strong></p>
|
||
|
||
<p>Microsoft Internet Explorer (MSIE) ignore par défaut les messages
|
||
d'erreur générés par le serveur lorsqu'ils sont trop courts et
|
||
remplacent ses propres messages d'erreur "amicaux". Le seuil de
|
||
taille varie en fonction du type d'erreur, mais en général, si la
|
||
taille de votre message d'erreur est supérieure à 512 octets, il y a
|
||
peu de chances pour que MSIE l'occulte, et il sera affiché par ce
|
||
dernier. Vous trouverez d'avantage d'informations dans l'article de
|
||
la base de connaissances Microsoft <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;Q294807">Q294807</a>.</p>
|
||
|
||
<p>Bien que la plupart des messages d'erreur internes originaux
|
||
puissent être remplacés, ceux-ci sont cependant conservés dans
|
||
certaines circonstances sans tenir compte de la définition de la
|
||
directive <code class="directive"><a href="#errordocument">ErrorDocument</a></code>. En
|
||
particulier, en cas de détection d'une requête mal formée, le
|
||
processus de traitement normal des requêtes est immédiatement
|
||
interrompu, et un message d'erreur interne est renvoyé, ceci afin de
|
||
se prémunir contre les problèmes de sécurité liés aux requêtes mal
|
||
formées.</p>
|
||
|
||
<p>Si vous utilisez mod_proxy, il est en général préférable
|
||
d'activer <code class="directive"><a href="../mod/mod_proxy.html#proxyerroroverride">ProxyErrorOverride</a></code> afin d'être en
|
||
mesure de produire des messages d'erreur personnalisés pour le
|
||
compte de votre serveur d'origine. Si vous n'activez pas
|
||
ProxyErrorOverride, Apache httpd ne générera pas de messages d'erreur
|
||
personnalisés pour le contenu mandaté.</p>
|
||
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><a href="../custom-error.html">documentation sur la
|
||
personnalisation des réponses</a></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="errorlog" id="errorlog">Directive</a> <a name="ErrorLog" id="ErrorLog">ErrorLog</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définition du chemin du journal des erreurs</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code> ErrorLog <var>file-path</var>|syslog[:[<var>facility</var>][:<var>tag</var>]]</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ErrorLog logs/error_log (Unix) ErrorLog logs/error.log (Windows and OS/2)</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">ErrorLog</code> permet de définir le
|
||
nom du fichier dans lequel le serveur va journaliser toutes les
|
||
erreurs qu'il rencontre. Si le <var>file-path</var> n'est pas
|
||
absolu, il est considéré comme relatif au chemin défini par la
|
||
directive <code class="directive"><a href="#serverroot">ServerRoot</a></code>.</p>
|
||
|
||
<pre class="prettyprint lang-config">ErrorLog "/var/log/httpd/error_log"</pre>
|
||
|
||
|
||
<p>Si le <var>file-path</var> commence par une barre verticale
|
||
"<code>(|)</code>", il est considéré comme une commande à lancer pour traiter la
|
||
journalisation de l'erreur.</p>
|
||
|
||
<pre class="prettyprint lang-config">ErrorLog "|/usr/local/bin/httpd_errors"</pre>
|
||
|
||
|
||
<p>Voir les notes à propos des <a href="../logs.html#piped">journaux
|
||
redirigés</a> pour plus d'informations.</p>
|
||
|
||
<p>L'utilisation de <code>syslog</code> à la place d'un nom de
|
||
fichier active la journalisation via syslogd(8) si le système le
|
||
supporte. Le dispositif syslog par défaut est <code>local7</code>,
|
||
mais vous pouvez le modifier à l'aide de la syntaxe
|
||
<code>syslog:<var>facility</var></code>, où <var>facility</var> peut
|
||
être remplacé par un des noms habituellement documentés dans la page
|
||
de man syslog(1). Le dispositif syslog <code>local7</code> est
|
||
global, et si il est modifié dans un serveur virtuel, le dispositif
|
||
final spécifié affecte l'ensemble du serveur. La même règle s'applique au
|
||
tag syslog qui utilise par défaut le nom du binaire du serveur HTTP Apache
|
||
<code>httpd</code> dans la plupart des cas. Vous pouvez aussi modifier cette
|
||
valeur en utilisant la syntaxe <code>syslog::<var>tag</var></code>.</p>
|
||
|
||
<pre class="prettyprint lang-config">ErrorLog syslog:user
|
||
ErrorLog syslog:user:httpd.srv1
|
||
ErrorLog syslog::httpd.srv2</pre>
|
||
|
||
|
||
<p>SECURITE : Voir le document <a href="../misc/security_tips.html#serverroot">conseils à propos de
|
||
sécurité</a> pour des détails sur les raisons pour lesquelles votre
|
||
sécurité peut être compromise si le répertoire contenant les
|
||
fichiers journaux présente des droits en écriture pour tout autre
|
||
utilisateur que celui sous lequel le serveur est démarré.</p>
|
||
<div class="warning"><h3>Note</h3>
|
||
<p>Lors de la spécification d'un chemin de fichier sur les
|
||
plates-formes non-Unix, on doit veiller à n'utiliser que des
|
||
slashes (/), même si la plate-forme autorise l'utilisation des
|
||
anti-slashes (\). Et d'une manière générale, il est recommandé de
|
||
n'utiliser que des slashes (/) dans les fichiers de
|
||
configuration.</p>
|
||
</div>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#loglevel">LogLevel</a></code></li>
|
||
<li><a href="../logs.html">Fichiers journaux du serveur HTTP Apache</a></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="errorlogformat" id="errorlogformat">Directive</a> <a name="ErrorLogFormat" id="ErrorLogFormat">ErrorLogFormat</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécification du format des entrées du journal des erreurs</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code> ErrorLogFormat [connection|request] <var>format</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">ErrorLogFormat</code> permet de
|
||
spécifier quelles informations supplémentaires vont être enregistrées
|
||
dans le journal des erreurs en plus du message habituel.</p>
|
||
|
||
<pre class="prettyprint lang-config"># Exemple simple
|
||
ErrorLogFormat "[%t] [%l] [pid %P] %F: %E: [client %a] %M"</pre>
|
||
|
||
|
||
<p>La spécification de <code>connection</code> ou
|
||
<code>request</code> comme premier paramètre permet de définir des
|
||
formats supplémentaires, ce qui a pour effet de journaliser des
|
||
informations additionnelles lorsque le premier message est
|
||
enregistré respectivement pour une connexion ou une requête
|
||
spécifique. Ces informations additionnelles ne sont enregistrées
|
||
qu'une seule fois par connexion/requête. Si le traitement d'une
|
||
connexion ou d'une requête ne génère aucun message dans le journal,
|
||
alors aucune information additionnelle n'est enregistrée.</p>
|
||
|
||
<p>Il peut arriver que certains items de la chaîne de format ne
|
||
produisent aucune sortie. Par exemple, l'en-tête Referer n'est
|
||
présent que si le message du journal est associé à une requête et s'il
|
||
est généré à un moment où l'en-tête Referer a déjà été lu par le
|
||
client. Si aucune sortie n'est générée, le comportement par défaut
|
||
consiste à supprimer tout ce qui se trouve entre l'espace précédent
|
||
et le suivant. Ceci implique que la ligne de journalisation est
|
||
divisée en champs ne contenant pas d'espace séparés par des espaces.
|
||
Si un item de la chaîne de format ne génère aucune sortie,
|
||
l'ensemble du champ est omis. Par exemple, si l'adresse distante
|
||
<code>%a</code> du format <code>[%t] [%l] [%a] %M </code> n'est
|
||
pas disponible, les crochets qui l'entourent ne seront eux-mêmes pas
|
||
enregistrés. Il est possible d'échapper les espaces par un anti-slash
|
||
afin qu'ils ne soient pas considérés comme séparateurs de champs.
|
||
La combinaison '% ' (pourcentage espace) est un délimiteur de
|
||
champ de taille nulle qui ne génère aucune sortie.</p>
|
||
|
||
<p>Ce comportement peut être changé en ajoutant des modificateurs à
|
||
l'item de la chaîne de format. Le modificateur <code>-</code>
|
||
(moins) provoque l'enregistrement d'un signe moins si l'item
|
||
considéré ne génère aucune sortie. Pour les formats à enregistrement
|
||
unique par connexion/requête, il est aussi possible d'utiliser le
|
||
modificateur <code>+</code> (plus). Si un item ne générant aucune
|
||
sortie possède le modificateur plus, la ligne dans son ensemble est
|
||
omise.</p>
|
||
|
||
<p>Un modificateur de type entier permet d'assigner un niveau de
|
||
sévérité à un item de format. L'item considéré ne
|
||
sera journalisé que si la sévérité du message n'est pas
|
||
plus haute que le niveau de sévérité spécifié. Les
|
||
valeurs possibles vont de 1 (alert) à 15 (trace8), en passant par 4
|
||
(warn) ou 7 (debug).</p>
|
||
|
||
<p>Par exemple, voici ce qui arriverait si vous ajoutiez des
|
||
modificateurs à l'item <code>%{Referer}i</code> qui enregistre le
|
||
contenu de l'en-tête <code>Referer</code>.</p>
|
||
|
||
<table class="bordered"><tr class="header"><th>Item modifié</th><th>Signification</th></tr>
|
||
<tr>
|
||
<td><code>%-{Referer}i</code></td>
|
||
<td>Enregistre le caractère <code>-</code> si l'en-tête
|
||
<code>Referer</code> n'est pas défini.</td>
|
||
</tr>
|
||
<tr class="odd">
|
||
<td><code>%+{Referer}i</code></td>
|
||
<td>N'enregistre rien si l'en-tête
|
||
<code>Referer</code> n'est pas défini.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>%4{Referer}i</code></td>
|
||
<td>N'enregistre le contenu de l'en-tête <code>Referer</code> que si
|
||
la sévérité du message de journalisation est supérieure à 4.</td>
|
||
</tr>
|
||
</table>
|
||
|
||
<p>Certains items de format acceptent des paramètres supplémentaires
|
||
entre accolades.</p>
|
||
|
||
<table class="bordered"><tr class="header"><th>Chaîne de format</th> <th>Description</th></tr>
|
||
<tr><td><code>%%</code></td>
|
||
<td>Le signe pourcentage</td></tr>
|
||
<tr class="odd"><td><code>%a</code></td>
|
||
<td>Adresse IP et port clients</td></tr>
|
||
<tr><td><code>%{c}a</code></td>
|
||
<td>Port et adresse IP sous-jacents du correspondant pour la
|
||
connexion (voir le module
|
||
<code class="module"><a href="../mod/mod_remoteip.html">mod_remoteip</a></code>)</td></tr>
|
||
<tr class="odd"><td><code>%A</code></td>
|
||
<td>Adresse IP et port locaux</td></tr>
|
||
<tr><td><code>%{<em>name</em>}e</code></td>
|
||
<td>Variable d'environnement de requête <em>name</em></td></tr>
|
||
<tr class="odd"><td><code>%E</code></td>
|
||
<td>Etat d'erreur APR/OS et chaîne</td></tr>
|
||
<tr><td><code>%F</code></td>
|
||
<td>Nom du fichier source et numéro de ligne de l'appel du
|
||
journal</td></tr>
|
||
<tr class="odd"><td><code>%{<em>name</em>}i</code></td>
|
||
<td>En-tête de requête <em>name</em></td></tr>
|
||
<tr><td><code>%k</code></td>
|
||
<td>Nombre de requêtes persistantes pour cette connexion</td></tr>
|
||
<tr class="odd"><td><code>%l</code></td>
|
||
<td>Sévérité du message</td></tr>
|
||
<tr><td><code>%L</code></td>
|
||
<td>Identifiant journal de la requête</td></tr>
|
||
<tr class="odd"><td><code>%{c}L</code></td>
|
||
<td>Identifiant journal de la connexion</td></tr>
|
||
<tr><td><code>%{C}L</code></td>
|
||
<td>Identifiant journal de la connexion si utilisé dans la
|
||
portée de la connexion, vide sinon</td></tr>
|
||
<tr class="odd"><td><code>%m</code></td>
|
||
<td>Nom du module qui effectue la journalisation du message</td></tr>
|
||
<tr><td><code>%M</code></td>
|
||
<td>Le message effectif</td></tr>
|
||
<tr class="odd"><td><code>%{<em>name</em>}n</code></td>
|
||
<td>Note de requête <em>name</em></td></tr>
|
||
<tr><td><code>%P</code></td>
|
||
<td>Identifiant du processus courant</td></tr>
|
||
<tr class="odd"><td><code>%T</code></td>
|
||
<td>Identifiant du thread courant</td></tr>
|
||
<tr><td><code>%{g}T</code></td>
|
||
<td>Identifiant unique de thread système du thread courant
|
||
(l'identifiant affiché par la commande <code>top</code> par
|
||
exemple ; seulement sous Linux pour l'instant)</td></tr>
|
||
<tr class="odd"><td><code>%t</code></td>
|
||
<td>L'heure courante</td></tr>
|
||
<tr><td><code>%{u}t</code></td>
|
||
<td>L'heure courante avec les microsecondes</td></tr>
|
||
<tr class="odd"><td><code>%{cu}t</code></td>
|
||
<td>L'heure courante au format compact ISO 8601, avec les
|
||
microsecondes</td></tr>
|
||
<tr><td><code>%v</code></td>
|
||
<td>Le nom de serveur canonique <code class="directive"><a href="#servername">ServerName</a></code> du serveur courant.</td></tr>
|
||
<tr class="odd"><td><code>%V</code></td>
|
||
<td>Le nom de serveur du serveur qui sert la requête en accord
|
||
avec la définition de la directive <code class="directive"><a href="#usecanonicalname">UseCanonicalName</a></code>.</td></tr>
|
||
<tr><td><code>\ </code> (anti-slash espace)</td>
|
||
<td>Espace non délimiteur</td></tr>
|
||
<tr class="odd"><td><code>% </code> (pourcentage espace)</td>
|
||
<td>Délimiteur de champ (aucune sortie)</td></tr>
|
||
</table>
|
||
|
||
<p>L'item de format identifiant journal <code>%L</code> génère un
|
||
identifiant unique pour une connexion ou une requête. Il peut servir
|
||
à déterminer quelles lignes correspondent à la même connexion ou
|
||
requête ou quelle requête est associée à tel connexion. Un item de
|
||
format <code>%L</code> est aussi disponible dans le module
|
||
<code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code>, mais il permet dans ce contexte de
|
||
corréler les entrées du journal des accès avec celles du journal des
|
||
erreurs. Si le module <code class="module"><a href="../mod/mod_unique_id.html">mod_unique_id</a></code> est chargé,
|
||
c'est son identifiant unique qui sera utilisé comme identifiant de
|
||
journal pour les requêtes.</p>
|
||
|
||
<pre class="prettyprint lang-config"># Exemple (format par défaut pour les MPMs threadés)
|
||
ErrorLogFormat "[%{u}t] [%-m:%l] [pid %P:tid %T] %7F: %E: [client\ %a] %M% ,\ referer\ %{Referer}i"</pre>
|
||
|
||
|
||
<p>Cet exemple renverrait un message d'erreur du style :</p>
|
||
|
||
<div class="example"><p><code>
|
||
[Thu May 12 08:28:57.652118 2011] [core:error] [pid 8777:tid 4326490112] [client ::1:58619] File does not exist: /usr/local/apache2/htdocs/favicon.ico
|
||
</code></p></div>
|
||
|
||
<p>Notez que, comme indiqué plus haut, certains champs sont
|
||
totalement supprimés s'ils n'ont pas été définis.</p>
|
||
|
||
<pre class="prettyprint lang-config"># Exemple (similaire au format 2.2.x)
|
||
ErrorLogFormat "[%t] [%l] %7F: %E: [client\ %a] %M% ,\ referer\ %{Referer}i"</pre>
|
||
|
||
|
||
<pre class="prettyprint lang-config"># Exemple avancé avec identifiants journal de requête/connexion
|
||
ErrorLogFormat "[%{uc}t] [%-m:%-l] [R:%L] [C:%{C}L] %7F: %E: %M"
|
||
ErrorLogFormat request "[%{uc}t] [R:%L] Request %k on C:%{c}L pid:%P tid:%T"
|
||
ErrorLogFormat request "[%{uc}t] [R:%L] UA:'%+{User-Agent}i'"
|
||
ErrorLogFormat request "[%{uc}t] [R:%L] Referer:'%+{Referer}i'"
|
||
ErrorLogFormat connection "[%{uc}t] [C:%{c}L] remote\ %a local\ %A"</pre>
|
||
|
||
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#errorlog">ErrorLog</a></code></li>
|
||
<li><code class="directive"><a href="#loglevel">LogLevel</a></code></li>
|
||
<li><a href="../logs.html">Fichiers journaux du serveur HTTP Apache</a></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="extendedstatus" id="extendedstatus">Directive</a> <a name="ExtendedStatus" id="ExtendedStatus">ExtendedStatus</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Extrait des informations d'état étendues pour chaque
|
||
requête</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ExtendedStatus On|Off</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ExtendedStatus Off</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
|
||
<p>Cette option permet d'extraire des données supplémentaires
|
||
concernant la requête en cours de traitement pour un processus
|
||
donné, et crée un résumé d'utilisation ; vous pouvez accéder à
|
||
ces variables pendant l'exécution en configurant
|
||
<code class="module"><a href="../mod/mod_status.html">mod_status</a></code>. Notez que d'autres modules sont
|
||
susceptibles de s'appuyer sur ce tableau de bord.</p>
|
||
|
||
<p>Cette directive s'applique au serveur dans son ensemble, et ne
|
||
peut pas être activée/désactivée pour un serveur virtuel
|
||
particulier. Notez que l'extraction des informations d'état étendues
|
||
peut ralentir le serveur. Notez aussi que cette définition ne peut
|
||
pas être modifiée au cours d'un redémarrage graceful.</p>
|
||
|
||
<div class="note">
|
||
<p>Notez que le chargement de <code class="module"><a href="../mod/mod_status.html">mod_status</a></code> définit
|
||
automatiquement ExtendedStatus à On, et que d'autres modules tiers
|
||
sont susceptibles d'en faire de même. De tels modules ont besoin
|
||
d'informations détaillées à propos de l'état de tous les processus.
|
||
Depuis la version 2.3.6, <code class="module"><a href="../mod/mod_status.html">mod_status</a></code> a définit la
|
||
valeur par défaut à On, alors qu'elle était à Off dans les versions
|
||
antérieures.</p>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="fileetag" id="fileetag">Directive</a> <a name="FileETag" id="FileETag">FileETag</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Caractéristiques de fichier utilisées lors de la génération
|
||
de l'en-tête de réponse HTTP ETag pour les fichiers statiques</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>FileETag <var>composant</var> ...</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>FileETag MTime Size</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>FileInfo</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>La valeur par défaut était "INode MTime Size"
|
||
dans les versions 2.3.14 et antérieures.</td></tr>
|
||
</table>
|
||
<p>
|
||
La directive <code class="directive">FileETag</code> définit les
|
||
caractéristiques de fichier utilisées lors de la génération de
|
||
l'en-tête de réponse HTTP <code>ETag</code> (entity tag) quand le
|
||
document est contenu dans un fichier statique (la valeur de
|
||
<code>ETag</code>
|
||
est utilisée dans le cadre de la gestion du cache pour préserver la
|
||
bande passante réseau). La directive
|
||
<code class="directive">FileETag</code> vous permet maintenant de choisir
|
||
quelles caractéristiques du fichier vont être utilisées, le cas
|
||
échéant. Les mots-clés reconnus sont :
|
||
</p>
|
||
|
||
<dl>
|
||
<dt><strong>INode</strong></dt>
|
||
<dd>Le numéro d'i-node du fichier sera inclus dans le processus de
|
||
génération</dd>
|
||
<dt><strong>MTime</strong></dt>
|
||
<dd>La date et l'heure auxquelles le fichier a été modifié la
|
||
dernière fois seront incluses</dd>
|
||
<dt><strong>Size</strong></dt>
|
||
<dd>La taille du fichier en octets sera incluse</dd>
|
||
<dt><strong>All</strong></dt>
|
||
<dd>Tous les champs disponibles seront utilisés. Cette définition
|
||
est équivalente à :
|
||
<pre class="prettyprint lang-config">FileETag INode MTime Size</pre>
|
||
</dd>
|
||
<dt><strong>Digest</strong></dt>
|
||
<dd>Si un document est à base de fichier, le champ <code>ETag</code> sera
|
||
généré à partir du condensé du fichier.</dd>
|
||
<dt><strong>None</strong></dt>
|
||
<dd>Si le document se compose d'un fichier, aucun champ
|
||
<code>ETag</code> ne sera inclus dans la réponse</dd>
|
||
</dl>
|
||
|
||
<p>Les mots-clés <code>INode</code>, <code>MTime</code>,
|
||
<code>Size</code> et <code>Digest</code> peuvent être préfixés par <code>+</code> ou
|
||
<code>-</code>, ce qui permet de modifier les valeurs par défaut
|
||
héritées d'un niveau de configuration plus général. Tout mot-clé
|
||
apparaissant sans aucun préfixe annule entièrement et immédiatement
|
||
les configurations héritées.</p>
|
||
|
||
<p>Si la configuration d'un répertoire contient
|
||
<code>FileETag INode MTime Size</code>, et si un de
|
||
ses sous-répertoires contient <code>FileETag -INode</code>, la
|
||
configuration de ce sous-répertoire (qui sera propagée vers tout
|
||
sous-répertoire qui ne la supplante pas), sera équivalente à
|
||
<code>FileETag MTime Size</code>.</p>
|
||
<div class="note"><h3>Inclusions côté serveur</h3>
|
||
Aucun champ ETag n'est généré pour les réponses interprétées par
|
||
<code class="module"><a href="../mod/mod_include.html">mod_include</a></code>, car l'entité de la réponse peut
|
||
changer sans modification de l'INode, MTime, Size ou Digest du
|
||
fichier statique contenant les directives SSI.
|
||
</div>
|
||
|
||
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="files" id="files">Directive</a> <a name="Files" id="Files"><Files></a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Contient des directives qui s'appliquent aux fichiers
|
||
précisés</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code><Files <var>nom fichier</var>> ... </Files></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>All</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive"><Files></code> limite
|
||
la portée des directives qu'elle contient aux fichiers précisés.
|
||
Elle est comparable aux directives <code class="directive"><a href="#directory"><Directory></a></code> et <code class="directive"><a href="#location"><Location></a></code>. Elle doit se terminer par une
|
||
balise <code></Files></code>. Les directives contenues dans
|
||
cette section s'appliqueront à tout objet dont le nom de base (la
|
||
dernière partie du nom de fichier) correspond au fichier spécifié.
|
||
Les sections <code class="directive"><Files></code> sont
|
||
traitées selon l'ordre dans lequel elles apparaissent dans le
|
||
fichier de configuration, après les sections <code class="directive"><a href="#directory"><Directory></a></code> et la lecture des fichiers
|
||
<code>.htaccess</code>, mais avant les sections <code class="directive"><a href="#location"><Location></a></code>. Notez que les
|
||
sections <code class="directive"><Files></code> peuvent être
|
||
imbriquées dans les sections <code class="directive"><a href="#directory"><Directory></a></code> afin de restreindre la portion
|
||
du système de fichiers à laquelle ces dernières vont
|
||
s'appliquer.</p>
|
||
|
||
<p>L'argument <var>filename</var> peut contenir un nom de fichier
|
||
ou une chaîne de caractères avec caractères génériques, où
|
||
<code>?</code> remplace un caractère, et <code>*</code> toute chaîne
|
||
de caractères.</p>
|
||
<pre class="prettyprint lang-config"><Files "cat.html">
|
||
# Insérer ici des directives qui s'appliquent au fichier cat.html
|
||
</Files>
|
||
|
||
<Files "?at.*">
|
||
# Les directives insérées ici s'appliqueront aux fichiers
|
||
# cat.html, bat.html, hat.php, et ainsi de suite.
|
||
</Files></pre>
|
||
|
||
|
||
<p>On peut aussi utiliser les <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">Expressions rationnelles</a> en ajoutant la
|
||
caractère <code>~</code>. Par exemple :</p>
|
||
|
||
<pre class="prettyprint lang-config"><Files ~ "\.(gif|jpe?g|png)$">
|
||
#...
|
||
</Files></pre>
|
||
|
||
|
||
<p>correspondrait à la plupart des formats graphiques de l'Internet.
|
||
Il est cependant préférable d'utiliser la directive <code class="directive"><a href="#filesmatch"><FilesMatch></a></code>.</p>
|
||
|
||
<p>Notez qu'à la différence des sections <code class="directive"><a href="#directory"><Directory></a></code> et <code class="directive"><a href="#location"><Location></a></code>, les sections <code class="directive"><Files></code> peuvent être utilisées dans les
|
||
fichiers <code>.htaccess</code>. Ceci permet aux utilisateurs de
|
||
contrôler l'accès à leurs propres ressources, fichier par
|
||
fichier.</p>
|
||
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><a href="../sections.html">Comment fonctionnent les sections
|
||
<Directory>, <Location> et <Files></a> pour une
|
||
explication de la manière dont ces différentes sections se combinent
|
||
entre elles à la réception d'une requête</li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="filesmatch" id="filesmatch">Directive</a> <a name="FilesMatch" id="FilesMatch"><FilesMatch></a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Contient des directives qui s'appliquent à des fichiers
|
||
spécifiés sous la forme d'expressions rationnelles</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code><FilesMatch <var>expression rationnelle</var>> ...
|
||
</FilesMatch></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>All</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>La section <code class="directive"><FilesMatch></code>
|
||
limite la portée des directives qu'elle contient aux fichiers
|
||
spécifiés, tout comme le ferait une section <code class="directive"><a href="#files"><Files></a></code>. Mais elle accepte aussi les
|
||
<a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expressions rationnelles</a>. Par
|
||
exemple :</p>
|
||
|
||
<pre class="prettyprint lang-config"><FilesMatch ".+\.(gif|jpe?g|png)$">
|
||
# ...
|
||
</FilesMatch></pre>
|
||
|
||
|
||
<p>correspondrait à la plupart des formats graphiques de
|
||
l'Internet.</p>
|
||
|
||
<div class="note">Les caractères <code>.+</code> au début de l'expression
|
||
rationnelle permettent de s'assurer que les fichiers de nom
|
||
<code>.png</code>, ou <code>.gif</code>, par exemple, ne seront pas
|
||
pris en compte.</div>
|
||
|
||
<p>A partir de la version 2.4.8, les groupes nommés et les
|
||
références arrières sont extraits et enregistrés dans
|
||
l'environnement avec leur nom en majuscules et préfixé
|
||
par "MATCH_". Ceci permet
|
||
de référencer des URLs dans des <a href="../expr.html">expressions</a>
|
||
ou au sein de modules comme <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>. Pour
|
||
éviter toute confusion, les références arrières numérotées (non
|
||
nommées) sont ignorées. Vous devez utiliser à la place des groupes
|
||
nommés.</p>
|
||
|
||
<pre class="prettyprint lang-config"><FilesMatch "^(?<sitename>[^/]+)">
|
||
Require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
|
||
</FilesMatch></pre>
|
||
|
||
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><a href="../sections.html">Comment fonctionnent les sections
|
||
<Directory>, <Location> et <Files></a> pour une
|
||
explication de la manière dont ces différentes sections se combinent
|
||
entre elles à la réception d'une requête</li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="flushmaxpipelined" id="flushmaxpipelined">Directive</a> <a name="FlushMaxPipelined" id="FlushMaxPipelined">FlushMaxPipelined</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre maximal de réponses en attente (pipelined) au-delà duquel
|
||
elles sont envoyées sur le réseau</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>FlushMaxPipelined <var>number</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>FlushMaxPipelined 5</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.47 du serveur HTTP Apache</td></tr>
|
||
</table>
|
||
<p>Cette directive permet de définir le nombre maximal de réponses
|
||
"pipelinées" qui restent en attente tant que des requêtes "pipelinées" sont
|
||
reçues. Lorsque cette limite est dépassée, l'envoi des réponses sur le
|
||
réseau est forcé en mode bloqué jusqu'à ce que leur nombre repasse en
|
||
dessous de la limite.</p>
|
||
|
||
<p>La directive <code class="directive">FlushMaxPipelined</code> permet de limiter
|
||
la consommation de mémoire. Lorsqu'elle est définie à <code>0</code>, le
|
||
pipelining est désactivé, et lorsqu'elle est définie à <code>-1</code>, il n'y
|
||
a plus de limite (mais la directive <code class="directive"><a href="#flushmaxthreshold">FlushMaxThreshold</a></code>
|
||
s'applique quand-même).</p>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="flushmaxthreshold" id="flushmaxthreshold">Directive</a> <a name="FlushMaxThreshold" id="FlushMaxThreshold">FlushMaxThreshold</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Seuil au-delà duquel les données en attente sont envoyées sur le
|
||
réseau</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>FlushMaxThreshold <var>number-of-bytes</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>FlushMaxThreshold 65535</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.47 du serveur HTTP Apache</td></tr>
|
||
</table>
|
||
<p>Cette directive permet de définir le seuil maximal de données en attente
|
||
d'envoi (en octets). Lorsque cette limite est dépassée, l'envoi des données sur le
|
||
réseau est forcé en mode bloqué jusqu'à ce que leur quantité repasse en
|
||
dessous du seuil spécifié.</p>
|
||
|
||
<p>La directive <code class="directive">FlushMaxThreshold</code> permet de limiter
|
||
la consommation de mémoire. Lorsqu'elle est définie à <code>0</code> ou à une
|
||
valeur trop petite, aucune donnée n'est mise en attente, mais dans le cas
|
||
des MPMs threadés, il peut alors y avoir plus de threads occupés en attente du
|
||
réseau, ce qui diminue d'autant le nombre de threads disponibles pour
|
||
traiter les autres connexions simultanées.</p>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="forcetype" id="forcetype">Directive</a> <a name="ForceType" id="ForceType">ForceType</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Force le type de médium spécifié dans le champ d'en-tête
|
||
HTTP Content-Type pour les fichiers correspondants</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ForceType <var>type médium</var>|None</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>FileInfo</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Lorsqu'elle est placée dans un fichier <code>.htaccess</code> ou
|
||
une section <code class="directive"><a href="#directory"><Directory></a></code>, <code class="directive"><a href="#location"><Location></a></code>, ou <code class="directive"><a href="#files"><Files></a></code>, cette directive force
|
||
l'identification du type MIME des fichiers spécifiés à la valeur de
|
||
l'argument <var>type médium</var>. Par exemple, si vous possédez un
|
||
répertoire ne contenant que des fichiers GIF, et si vous ne voulez
|
||
pas leur ajouter l'extension <code>.gif</code>, vous pouvez utiliser
|
||
:</p>
|
||
|
||
<pre class="prettyprint lang-config">ForceType image/gif</pre>
|
||
|
||
|
||
<p>Notez que cette directive l'emporte sur d'autres associations de
|
||
type de médium indirectes définies dans mime.types ou via la
|
||
directive <code class="directive"><a href="../mod/mod_mime.html#addtype">AddType</a></code>.</p>
|
||
|
||
<p>Vous pouvez aussi annuler toute définition plus générale de
|
||
<code class="directive">ForceType</code> en affectant la valeur
|
||
<code>None</code> à l'argument <var>type médium</var> :</p>
|
||
|
||
<pre class="prettyprint lang-config"># force le type MIME de tous les fichiers à image/gif:
|
||
<Location "/images">
|
||
ForceType image/gif
|
||
</Location>
|
||
|
||
# mais utilise les méthodes classiques d'attribution du type MIME
|
||
# dans le sous-répertoire suivant :
|
||
<Location "/images/mixed">
|
||
ForceType None
|
||
</Location></pre>
|
||
|
||
|
||
<p>A la base, cette directive écrase le type de contenu généré pour
|
||
les fichiers statiques servis à partir du sytème de fichiers. Pour
|
||
les ressources autres que les fichiers statiques pour lesquels le
|
||
générateur de réponse spécifie en général un type de contenu, cette
|
||
directive est ignorée.</p>
|
||
|
||
<div class="note"><h3>Note</h3>
|
||
<p>Lorsque des directives explicites comme <code class="directive"><a href="#sethandler">SetHandler</a></code> ou
|
||
<code class="directive">module="mod_mime">AddHandler</code> ne s'appliquent
|
||
pas à la requête courante, le nom du gestionnaire interne
|
||
normalement défini par ces directives correspondra alors au type de
|
||
contenu spécifié par cette directive. Il s'agit d'un
|
||
comportement historique que certains modules
|
||
tiers, comme mod_php, peuvent interpréter comme un type de contenu
|
||
artificiel ne servant qu'à indiquer le module qui doit prendre en
|
||
compte la requête considérée. Dans la mesure du
|
||
possible, il est conseillé d'éviter les
|
||
configurations qui comportent de tels types artificiels en utilisant
|
||
les directives <code class="directive"><a href="#sethandler">SetHandler</a></code> ou
|
||
<code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code>.</p>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="gprofdir" id="gprofdir">Directive</a> <a name="GprofDir" id="GprofDir">GprofDir</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Répertoire dans lequel écrire les données de profiling
|
||
gmon.out.</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>GprofDir <var>/tmp/gprof/</var>|<var>/tmp/gprof/</var>%</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Lorsque le serveur a été compilé avec le support du profiling
|
||
gprof, la directive <code class="directive">GprofDir</code> permet de
|
||
spécifier dans quel répertoire les fichiers <code>gmon.out</code>
|
||
doivent être écrits lorsque le processus s'arrête. Si l'argument se
|
||
termine par un caractère pourcentage ('%'), des sous-répertoires
|
||
sont créés pour chaque identifiant de processus.</p>
|
||
|
||
<p>Cette directive ne fonctionne actuellement qu'avec le MPM
|
||
<code class="module"><a href="../mod/prefork.html">prefork</a></code>.</p>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="hostnamelookups" id="hostnamelookups">Directive</a> <a name="HostnameLookups" id="HostnameLookups">HostnameLookups</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active la recherche DNS sur les adresses IP des
|
||
clients</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>HostnameLookups On|Off|Double</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>HostnameLookups Off</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Cette directive active la recherche DNS afin de pouvoir
|
||
journaliser les nom d'hôtes (et les passer aux programmes CGI et aux
|
||
inclusions SSI via la variable <code>REMOTE_HOST</code>). La valeur
|
||
<code>Double</code> déclenche une double recherche DNS inverse. En
|
||
d'autres termes, une fois la recherche inverse effectuée, on lance
|
||
une recherche directe sur le résultat de cette dernière. Au moins
|
||
une des adresses IP fournies par la recherche directe doit
|
||
correspondre à l'adresse originale (ce que l'on nomme
|
||
<code>PARANOID</code> dans la terminologie "tcpwrappers").</p>
|
||
|
||
<p>Quelle que soit la configuration, lorsqu'on utilise
|
||
<code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> pour contrôler l'accès en fonction
|
||
du nom d'hôte, une double recherche DNS inverse est effectuée,
|
||
sécurité oblige. Notez cependant que le résultat de cette double
|
||
recherche n'est en général pas accessible, à moins que vous n'ayez
|
||
spécifié <code>HostnameLookups Double</code>. Par exemple, si vous
|
||
n'avez spécifié que <code>HostnameLookups On</code>, et si une
|
||
requête concerne un objet protégé par des restrictions en fonction
|
||
du nom d'hôte, quel que soit le résultat de la double recherche
|
||
inverse, les programmes CGI ne recevront que le résultat de la
|
||
recherche inverse simple dans la variable
|
||
<code>REMOTE_HOST</code>.</p>
|
||
|
||
<p>La valeur par défaut est <code>Off</code> afin de préserver le
|
||
traffic réseau des sites pour lesquels la recherche inverse n'est
|
||
pas vraiment nécessaire. Cette valeur par défaut est aussi bénéfique
|
||
pour les utilisateurs finaux car il n'ont ainsi pas à subir de temps
|
||
d'attente supplémentaires dus aux recherches DNS. Les sites
|
||
fortement chargés devraient laisser cette directive à
|
||
<code>Off</code>, car les recherches DNS peuvent prendre des temps
|
||
très longs. Vous pouvez éventuellement utiliser hors ligne
|
||
l'utilitaire <code class="program"><a href="../programs/logresolve.html">logresolve</a></code>, compilé par défaut dans
|
||
le sous-répertoire <code>bin</code> de votre répertoire
|
||
d'installation, afin de déterminer les noms d'hôtes associés aux
|
||
adresses IP journalisées.</p>
|
||
|
||
<p>Enfin, si vous avez des <a href="mod_authz_host.html#reqhost">directives Require à base de
|
||
nom</a>, une recherche de nom d'hôte sera effectuée quelle que soit
|
||
la définition de la directive <code class="directive">HostnameLookups</code>.</p>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="httpprotocoloptions" id="httpprotocoloptions">Directive</a> <a name="HttpProtocolOptions" id="HttpProtocolOptions">HttpProtocolOptions</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Modifie les contraintes sur les messages des requêtes HTTP</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>HttpProtocolOptions [Strict|Unsafe] [RegisteredMethods|LenientMethods]
|
||
[Allow0.9|Require1.0]</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>HttpProtocolOptions Strict LenientMethods Allow0.9</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir des versions 2.2.32 et 2.4.24 du serveur HTTP
|
||
Apache</td></tr>
|
||
</table>
|
||
<p>Cette directive permet de modifier les règles qui s'appliquent à la ligne
|
||
de requête HTTP (<a href="https://tools.ietf.org/html/rfc7230#section-3.1.1">RFC 7230
|
||
§3.1.1</a>) et aux champs des en-têtes des requêtes HTTP (<a href="https://tools.ietf.org/html/rfc7230#section-3.2">RFC 7230
|
||
§3.2</a>), qui s'appliquent maintenant par défaut ou en utilisant
|
||
l'option <code>Strict</code>. L'option <code>Unsafe</code>
|
||
a été ajoutée pour pouvoir restaurer les anciens
|
||
comportements nécessaires aux anciens modules et applications et aux agents
|
||
utilisateurs personnalisés considérés comme obsolètes.</p>
|
||
|
||
<p>Ces règles
|
||
s'appliquant avant le traitement de la requête, elles doivent, pour être prises en
|
||
compte, être définies
|
||
au niveau global ou dans la première section par défaut du serveur virtuel
|
||
qui correspond à la requête considérée, par interface IP/port et non par
|
||
nom.</p>
|
||
|
||
<p>Cette directive accepte trois paramètres issus de la liste suivante, ceux
|
||
qui ne sont pas spécifiés prenant leur valeur par défaut :</p>
|
||
|
||
<dl>
|
||
<dt>Strict|Unsafe</dt>
|
||
<dd>
|
||
<p>Avant l'introduction de cette directive, les interpréteurs de requêtes du
|
||
serveur HTTP Apache toléraient un grand nombre de formats en entrée qui
|
||
n'étaient pas forcément conformes au protocole. <a href="https://tools.ietf.org/html/rfc7230#section-9.4">RFC 7230 §9.4
|
||
Request Splitting</a> et <a href="https://tools.ietf.org/html/rfc7230#section-9.5">§9.5 Response
|
||
Smuggling</a> ne rappellent que deux des risques potentiels induits par des
|
||
requêtes non conformes, alors que <a href="https://tools.ietf.org/html/rfc7230#section-3.5">RFC 7230
|
||
§3.5</a> signale les risques encourus par l'acceptation de blancs non
|
||
conformes dans les lignes de requête. Avec l'introduction de cette
|
||
directive, toutes les règles de grammaire de la spécification doivent être
|
||
respectées dans le mode d'opérations par défaut <code>Strict</code>.</p>
|
||
|
||
<div class="warning"><h3>Risques de sécurité liés au mode Unsafe</h3>
|
||
<p>Il est fortement déconseillé aux utilisateurs d'utiliser le mode
|
||
d'opération <code>Unsafe</code>, ou
|
||
<code>UnsafeWhitespace</code>, en particulier pour les déploiements de
|
||
serveurs ouverts sur l'extérieur et/ou accessibles au public. Si un moniteur
|
||
défectueux ou autre logiciel spécialisé ne s'exécutant que sur un intranet
|
||
nécessite une interface, les utilisateurs ne doivent utiliser les options de
|
||
type UnSafe qu'en cas de nécessité et uniquement au sein d'un serveur
|
||
virtuel bien spécifique et sur un réseau privé.</p>
|
||
</div>
|
||
|
||
<div class="example"><h3>Exemple de requête provoquant l'envoi d'un message HTTP 400 en
|
||
mode Strict</h3><p><code>
|
||
|
||
# Missing CRLF<br />
|
||
GET / HTTP/1.0\n\n
|
||
</code></p></div>
|
||
<div class="warning"><h3>Utilitaires en ligne de commande et CRLF</h3>
|
||
<p>Il peut s'avérer nécessaire de forcer certains utilitaires à utiliser
|
||
CRLF ; si ce n'est pas le cas, httpd reverra une réponse HTTP 400 comme
|
||
dans le cas précédent. Par exemple, le <strong>client OpenSSL s_client
|
||
doit utiliser le paramètre -crlf pour fonctionner correctement</strong>.</p>
|
||
<p>Pour détecter des problèmes tels que l'absence de CRLF, vous pouvez
|
||
utiliser la directive <code class="directive"><a href="../mod/mod_dumpio.html#dumpioinput">DumpIOInput</a></code> qui permet de décortiquer
|
||
les requêtes HTTP.</p>
|
||
</div>
|
||
</dd>
|
||
<dt>RegisteredMethods|LenientMethods</dt>
|
||
<dd>
|
||
<p>La section de la <a href="https://tools.ietf.org/html/rfc7231#section-4.1">RFC 7231
|
||
§4.1</a> "Request Methods" "Overview" indique que les serveurs doivent
|
||
renvoyer un message d'erreur lorsque la ligne de requête comporte une
|
||
méthode non supportée. C'est déjà le cas lorsque l'option
|
||
<code>LenientMethods</code> est utilisée, mais les administrateurs ont la
|
||
possibilité de limiter les méthodes utilisées via l'option
|
||
<code>RegisteredMethods</code> en enregistrant toute méthode non standard
|
||
via la directive <code class="directive">RegisterHttpMethod</code>, en particulier
|
||
si l'option <code>Unsafe</code> est utilisée.</p>
|
||
|
||
<div class="warning"><h3>Compatibilité avec le mandat direct</h3>
|
||
<p>L'option
|
||
<code>RegisteredMethods</code> <strong>ne doit pas</strong> être utilisée
|
||
pour les serveurs mandataires car ces derniers ne connaissent pas les
|
||
méthodes supportées par les serveurs originaux.</p>
|
||
</div>
|
||
|
||
<div class="example"><h3>Exemple de requête provoquant l'envoi d'un message HTTP 501 en
|
||
mode LenientMethods</h3><p><code>
|
||
|
||
# Méthode HTTP inconnue<br />
|
||
WOW / HTTP/1.0\r\n\r\n<br /><br />
|
||
# Méthode HTTP spécifiée en minuscules<br />
|
||
get / HTTP/1.0\r\n\r\n<br />
|
||
</code></p></div>
|
||
</dd>
|
||
<dt>Allow0.9|Require1.0</dt>
|
||
<dd>
|
||
<p>La section de la <a href="https://tools.ietf.org/html/rfc2616#section-19.6">RFC 2616
|
||
§19.6</a> "Compatibility With Previous Versions" encouragait les
|
||
serveurs HTTP à supporter les anciennes requêtes HTTP/0.9. La RFC 7230 va
|
||
cependant à son encontre via sa préconisation "Le souhait de supporter les
|
||
requêtes HTTP/0.9 a été supprimé" et y adjoint des commentaires dans <a href="https://tools.ietf.org/html/rfc7230#appendix-A">RFC 7230 Appendix
|
||
A</a>. A ce titre, l'option <code>Require1.0</code> permet à l'utilisateur
|
||
d'inhiber le comportement induit par l'option par défaut
|
||
<code>Allow0.9</code>.</p>
|
||
|
||
<div class="example"><h3>Exemple de requête provoquant l'envoi d'un message HTTP 400 en
|
||
mode Require1.0</h3><p><code>
|
||
|
||
# Version HTTP non supportée<br />
|
||
GET /\r\n\r\n
|
||
</code></p></div>
|
||
</dd>
|
||
</dl>
|
||
|
||
<p>La consultation des messages enregistrés dans le journal
|
||
<code class="directive">ErrorLog</code>, configuré via la directive
|
||
<code class="directive">LogLevel</code> avec un niveau <code>info</code>, pourra
|
||
vous aider à identifier de telles requêtes non conformes ainsi que leur
|
||
provenance. Les utilisateurs devront accorder une attention particulière aux
|
||
messages d'erreur de type 400 dans le journal access pour détecter les
|
||
requêtes apparemment valides mais rejetées.</p>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="if" id="if">Directive</a> <a name="If" id="If"><If></a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Contient des directives qui ne s'appliquent que si une
|
||
condition est satisfaite au cours du traitement d'une
|
||
requête</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code><If <var>expression</var>> ... </If></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>All</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Les conditions imbriquées sont supportées à partir de la version
|
||
2.4.26 du serveur HTTP Apache</td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive"><If></code> évalue une
|
||
expression à la volée, et applique les directives qu'elle contient
|
||
si et seulement si l'expression renvoie la valeur "vrai". Par
|
||
exemple :</p>
|
||
|
||
<pre class="prettyprint lang-config"><If "-z req('Host')"></pre>
|
||
|
||
|
||
<p>serait satisfaite pour les requêtes HTTP/1.0 sans en-tête
|
||
<var>Host:</var>. Les expressions peuvent contenir différents
|
||
opérateurs de type shell pour la comparaison de chaînes
|
||
(<code>==</code>, <code>!=</code>, <code><</code>, ...), la
|
||
comparaison d'entiers (<code>-eq</code>, <code>-ne</code>, ...), ou
|
||
à usages divers (<code>-n</code>, <code>-z</code>, <code>-f</code>,
|
||
...). Les expressions rationnelles sont aussi supportées,</p>
|
||
|
||
<pre class="prettyprint lang-config"><If "%{QUERY_STRING} =~ /(delete|commit)=.*?elem/"></pre>
|
||
|
||
|
||
<p>ainsi que les comparaison de modèles de type shell et de
|
||
nombreuses autres opérations. Ces opérations peuvent être effectuées
|
||
sur les en-têtes de requêtes (<code>req</code>), les variables
|
||
d'environnement (<code>env</code>), et un grand nombre d'autres
|
||
propriétés. La documentation complète est disponible dans <a href="../expr.html">Les expressions dans le serveur HTTP Apache</a>.</p>
|
||
|
||
<p>Cette section de configuration ne peut contenir que des
|
||
directives qui supportent le <a href="directive-dict.html#Context">contexte de répertoire</a>.</p>
|
||
|
||
<div class="warning">
|
||
Certain variables, such as <code>CONTENT_TYPE</code> and other
|
||
response headers, are set after <If> conditions have already
|
||
been evaluated, and so will not be available to use in this
|
||
directive.
|
||
</div>
|
||
|
||
<div class="warning">
|
||
Les directives qui sont évaluées lors du traitement de la configuration
|
||
comme <code class="directive">Define</code>, <code class="directive">Include</code> et
|
||
<code class="directive">Error</code> ne peuvent pas être traitées de manière
|
||
conditionnelle en les incluant dans une section de configuration <code class="directive"><If></code>. Ces sections font en effet toujours partie de
|
||
la configuration, quelle soit la manière dont elles sont évaluées à
|
||
l'exécution.
|
||
</div>
|
||
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><a href="../expr.html">Les expressions dans le serveur HTTP
|
||
Apache</a>, pour une référence complète et d'autres exemples.</li>
|
||
<li><code class="directive"><a href="#elseif"><ElseIf></a></code></li>
|
||
<li><code class="directive"><a href="#else"><Else></a></code></li>
|
||
<li><a href="../sections.html">Comment fonctionnent les sections
|
||
<Directory>, <Location> et <Files></a> pour une
|
||
explication de la manière dont ces différentes sections se combinent
|
||
entre elles à la réception d'une requête. Les
|
||
directives <code class="directive"><If></code>, <code class="directive"><ElseIf></code>, et <code class="directive"><Else></code> s'appliquent en dernier.</li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="ifdefine" id="ifdefine">Directive</a> <a name="IfDefine" id="IfDefine"><IfDefine></a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Contient des directives qui ne s'appliqueront que si un
|
||
test retourne "vrai" au démarrage du serveur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code><IfDefine [!]<var>paramètre</var>> ...
|
||
</IfDefine></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>All</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>La section <code><IfDefine
|
||
<var>test</var>>...</IfDefine></code> permet de
|
||
conférer un caractère conditionnel à un ensemble de directives. Les
|
||
directives situées à l'intérieur d'une section <code class="directive"><IfDefine></code> ne s'appliquent que si
|
||
<var>test</var> est vrai. Si <var>test</var> est faux, tout ce qui
|
||
se trouve entre les balises de début et de fin est ignoré.</p>
|
||
|
||
<p><var>test</var> peut se présenter sous deux formes :</p>
|
||
|
||
<ul>
|
||
<li><var>nom paramètre</var></li>
|
||
|
||
<li><code>!</code><var>nom paramètre</var></li>
|
||
</ul>
|
||
|
||
<p>Dans le premier cas, les directives situées entre les balises de
|
||
début et de fin ne s'appliqueront que si le paramètre nommé <var>nom
|
||
paramètre</var> est défini. Le second format inverse le test, et
|
||
dans ce cas, les directives ne s'appliqueront que si <var>nom
|
||
paramètre</var> n'est <strong>pas</strong> défini.</p>
|
||
|
||
<p>L'argument <var>nom paramètre</var> est une définition qui peut
|
||
être effectuée par la ligne de commande
|
||
<code class="program"><a href="../programs/httpd.html">httpd</a></code> via le paramètre
|
||
<code>-D<var>paramètre</var></code> au démarrage du serveur, ou via la
|
||
directive <code class="directive"><a href="#define">Define</a></code>.</p>
|
||
|
||
<p>Les sections <code class="directive"><IfDefine></code>
|
||
peuvent être imbriquées, ce qui permet d'implémenter un test
|
||
multi-paramètres simple. Exemple :</p>
|
||
|
||
<div class="example"><p><code>httpd -DReverseProxy -DUseCache -DMemCache ...</code></p></div>
|
||
<pre class="prettyprint lang-config"><IfDefine ReverseProxy>
|
||
LoadModule proxy_module modules/mod_proxy.so
|
||
LoadModule proxy_http_module modules/mod_proxy_http.so
|
||
<IfDefine UseCache>
|
||
LoadModule cache_module modules/mod_cache.so
|
||
<IfDefine MemCache>
|
||
LoadModule mem_cache_module modules/mod_mem_cache.so
|
||
</IfDefine>
|
||
<IfDefine !MemCache>
|
||
LoadModule cache_disk_module modules/mod_cache_disk.so
|
||
</IfDefine>
|
||
</IfDefine>
|
||
</IfDefine></pre>
|
||
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="ifdirective" id="ifdirective">Directive</a> <a name="IfDirective" id="IfDirective"><IfDirective></a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Regroupe des directives dont le traitement est conditionné par la
|
||
présence ou l'absence d'une directive particulière</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code><IfDirective [!]<var>directive-name</var>> ...
|
||
</IfDirective></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>All</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.34 du serveur HTTP Apache</td></tr>
|
||
</table>
|
||
<p>La section <code><IfDirective
|
||
<var>test</var>>...</IfDirective></code> permet de regrouper des
|
||
directives dont le traitement n'est effectué que si une directive
|
||
particulière est présente, autrement dit si l'expression <var>test</var> est
|
||
évaluée à true. Si l'expression <var>test</var> est évaluée à false, toutes
|
||
les lignes qui se trouvent entre les balises de début et de fin de la
|
||
section sont ignorées.</p>
|
||
|
||
<p>L'expression <var>test</var> de la section <code class="directive"><IfDirective></code> peut prendre les deux formes
|
||
suivantes :</p>
|
||
|
||
<ul>
|
||
<li><var>directive-name</var></li>
|
||
|
||
<li>!<var>directive-name</var></li>
|
||
</ul>
|
||
|
||
<p>Dans le premier cas, les directives qui se situent entre les balises de
|
||
début et de fin de la section ne sont traitées que si une directive de nom
|
||
directive-name est disponible à cet instant. Dans le second cas, la condition est
|
||
inversée, et les directives ne sont traitées que si
|
||
<var>directive-name</var> n'est <strong>pas</strong> disponible.</p>
|
||
|
||
<div class="note">Cette section ne doit être utilisée que si vous devez partager le même
|
||
fichier de configuration entre plusieurs versions de
|
||
<code class="program"><a href="../programs/httpd.html">httpd</a></code>, sans tenir compte de la disponibilité de telle ou
|
||
telle directive. Dans une configuration standard, il est inutile de placer
|
||
les directives dans des sections <code class="directive"><IfDirective></code>.</div>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#ifsection"><IfSection></a></code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="iffile" id="iffile">Directive</a> <a name="IfFile" id="IfFile"><IfFile></a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Regroupe des directives qui ne seront traitées que si un fichier
|
||
existe au démarrage</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code><IfFile [!]<var>filename</var>> ...
|
||
</IfFile></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>All</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.34 du serveur HTTP Apache</td></tr>
|
||
</table>
|
||
<p>La section <code><IfFile <var>filename</var>>...</IfFile></code>
|
||
permet de conditionner le traitement de directives à
|
||
l'existence d'un fichier sur disque. Ainsi, les directives définies au sein
|
||
d'une section <code class="directive"><IfFile></code> ne seront
|
||
traitées que si le fichier <var>filename</var> existe. Si le fichier
|
||
<var>filename</var> n'existe pas, tout ce qui se trouve entre les marqueurs
|
||
start et end sera ignoré. <var>filename</var> peut être un chemin absolu ou
|
||
relatif au chemin défini par la directive ServerRoot.</p>
|
||
|
||
<p>Le paramètre <var>filename</var> de l'en-tête d'une section <code class="directive"><IfFile></code> peut prendre la même forme que la variable
|
||
<var>test</var> de la section <code class="directive"><a href="#ifdefine"><IfDefine></a></code> ; à ce titre, le résultat du test peut
|
||
être inversé en plaçant le caractère <code>!</code> juste avant
|
||
<var>filename</var>.
|
||
</p>
|
||
|
||
<p>Si <var>filename</var> est un chemin relatif, il sera généré par rapport
|
||
au chemin défini par la directive <code class="directive"><a href="#serverroot">ServerRoot</a></code>. Lorsque la directive <code class="directive"><IfFile></code> intervient avant la définition de la
|
||
directive <code class="directive"><a href="#serverroot">ServerRoot</a></code>,
|
||
<var>filename</var> sera relatif au répertoire racine par défaut du serveur
|
||
ou au répertoire racine passé dans la ligne de commande via l'option
|
||
<code>-d</code>.</p>
|
||
|
||
<div class="warning"><h3>Avertissement</h3>
|
||
Avec la version 2.4.34, il est interdit de spécifier un <var>filename</var>
|
||
entouré de guillemets. Ceci provoquerait une erreur de syntaxe au démarrage.
|
||
Il est donc impossible de spécifier des noms de fichiers contenant des
|
||
espaces, mais ce défaut a été corrigé à partir de la version 2.4.35.</div>
|
||
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="ifmodule" id="ifmodule">Directive</a> <a name="IfModule" id="IfModule"><IfModule></a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Contient des directives qui ne s'appliquent qu'en fonction
|
||
de la présence ou de l'absence d'un module spécifique</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code><IfModule [!]<var>fichier module</var>|<var>identificateur
|
||
module</var>> ... </IfModule></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>All</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Les identificateurs de modules sont disponibles dans les
|
||
versions 2.1 et supérieures.</td></tr>
|
||
</table>
|
||
<p>La section <code><IfModule
|
||
<var>test</var>>...</IfModule></code> permet de conférer à
|
||
des directives un caractère conditionnel basé sur la présence d'un
|
||
module spécifique. Les directives situées dans une section
|
||
<code class="directive"><IfModule></code> ne s'appliquent que
|
||
si <var>test</var> est vrai. Si <var>test</var> est faux, tout ce
|
||
qui se trouve entre les balises de début et de fin est ignoré.</p>
|
||
|
||
<p><var>test</var> peut se présenter sous deux formes :</p>
|
||
|
||
<ul>
|
||
<li><var>module</var></li>
|
||
|
||
<li>!<var>module</var></li>
|
||
</ul>
|
||
|
||
<p>Dans le premier cas, les directives situées entre les balises de
|
||
début et de fin ne s'appliquent que si le module <var>module</var>
|
||
est présent -- soit compilé avec le binaire Apache httpd, soit chargé
|
||
dynamiquement via la directive <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code>. Le second format inverse le test, et dans
|
||
ce cas, les directives ne s'appliquent que si <var>module</var>
|
||
n'est <strong>pas</strong> présent.</p>
|
||
|
||
<p>L'argument <var>module</var> peut contenir soit l'identificateur
|
||
du module, soit le nom du fichier source du module. Par exemple,
|
||
<code>rewrite_module</code> est un identificateur et
|
||
<code>mod_rewrite.c</code> le nom du fichier source
|
||
correspondant. Si un module comporte plusieurs fichiers sources,
|
||
utilisez le nom du fichier qui contient la chaîne de caractères
|
||
<code>STANDARD20_MODULE_STUFF</code>.</p>
|
||
|
||
<p>Les sections <code class="directive"><IfModule></code>
|
||
peuvent être imbriquées, ce qui permet d'implémenter des tests
|
||
multi-modules simples.</p>
|
||
|
||
<div class="note">Cette section ne doit être utilisée que si votre fichier de
|
||
configuration ne fonctionne qu'en fonction de la présence ou de
|
||
l'absence d'un module spécifique. D'une manière générale, il n'est
|
||
pas nécessaire de placer les directives à l'intérieur de sections
|
||
<code class="directive"><IfModule></code>.</div>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="ifsection" id="ifsection">Directive</a> <a name="IfSection" id="IfSection"><IfSection></a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Regroupe des directives dont le traitement est conditionné par la
|
||
présence ou l'absence d'une section particulière</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code><IfSection [!]<var>section-name</var>> ...
|
||
</IfSection></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>All</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.34 du serveur HTTP Apache</td></tr>
|
||
</table>
|
||
<p>La section <code><IfSection
|
||
<var>test</var>>...</IfSection></code> permet de regrouper des
|
||
directives dont le traitement n'est effectué que si une section de
|
||
configuration particulière est présente. Une section, par exemple <code class="directive"><VirtualHost></code>, permet de regrouper des directives
|
||
et possède un nom précédé du caractère "<".</p>
|
||
|
||
<p>Les directives situées à l'intérieur d'une section <code class="directive"><IfSection></code> ne sont traitées que si l'expression
|
||
<var>test</var> est évaluée à true. Si l'expression <var>test</var> est
|
||
évaluée à false, toutes les lignes situées entre les balises de début et de
|
||
fin de la section sont ignorées.</p>
|
||
|
||
<p><var>section-name</var> doit être spécifié sans les caractères de début
|
||
"<" ou fin ">". L'expression <var>test</var> de la section <code class="directive"><IfSection></code> peut prendre deux formes :</p>
|
||
|
||
<ul>
|
||
<li><var>section-name</var></li>
|
||
<li>!<var>section-name</var></li>
|
||
</ul>
|
||
|
||
<p>Dans le premier cas, les directives qui se situent entre les balises de
|
||
début et de fin de la section ne sont traitées que si une section de nom
|
||
section-name est disponible à cet instant. Dans le second cas, la condition est
|
||
inversée, et les directives ne sont traitées que si
|
||
<var>section-name</var> n'est <strong>pas</strong> disponible.</p>
|
||
|
||
<p>Par exemple :</p>
|
||
|
||
<pre class="prettyprint lang-config"><IfSection VirtualHost>
|
||
...
|
||
</IfSection></pre>
|
||
|
||
|
||
<div class="note">Cette section ne doit être utilisée que si vous devez partager le même
|
||
fichier de configuration entre plusieurs versions de
|
||
<code class="program"><a href="../programs/httpd.html">httpd</a></code>, sans tenir compte de la disponibilité de telle ou
|
||
telle section. Dans une configuration standard, il est inutile de placer
|
||
les directives dans des sections <code class="directive"><IfSection></code>.</div>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#ifdirective"><IfDirective></a></code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="include" id="include">Directive</a> <a name="Include" id="Include">Include</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Inclut d'autres fichiers de configuration dans un des
|
||
fichiers de configuration du serveur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Include <var>chemin-fichier</var>|<var>chemin-répertoire</var>|<var>wildcard</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Utilisation des caractères génériques dans la partie chemin depuis la
|
||
version 2.3.6</td></tr>
|
||
</table>
|
||
<p>Cette directive permet l'inclusion d'autres fichiers de
|
||
configuration dans un des fichiers de configuration du serveur.</p>
|
||
|
||
<p>On peut utiliser des caractères génériques de style Shell
|
||
(<code>fnmatch()</code>) aussi bien dans la partie nom de fichier du
|
||
chemin que dans la partie répertoires pour inclure plusieurs
|
||
fichiers en une
|
||
seule fois, selon leur ordre alphabétique. De plus, si la directive
|
||
<code class="directive">Include</code> pointe vers un répertoire, Apache
|
||
httpd inclura tous les fichiers de ce répertoire et de tous ces
|
||
sous-répertoires. L'inclusion de répertoires entiers est cependant
|
||
déconseillée, car il est fréquent d'oublier des fichiers
|
||
temporaires dans un répertoire, ce qui causerait une erreur
|
||
<code class="program"><a href="../programs/httpd.html">httpd</a></code> en cas d'inclusion. Pour inclure des
|
||
fichiers qui correspondent à un certain modèle, comme *.conf par
|
||
exemple, nous vous recommandons d'utiliser plutôt la syntaxe avec
|
||
caractères génériques comme ci-dessous.</p>
|
||
|
||
<p>La directive <code class="directive"><a href="#include">Include</a></code>
|
||
<strong>échouera avec un code d'erreur</strong> si une expression
|
||
contenant des caractères génériques ne correspond à aucun fichier.
|
||
Pour ignorer les expressions contenant des caractères génériques ne
|
||
correspondant à aucun fichier, utilisez la directive <code class="directive"><a href="#includeoptional">IncludeOptional</a></code>.</p>
|
||
|
||
<p>Le chemin fichier spécifié peut être soit un chemin absolu, soit
|
||
un chemin relatif au répertoire défini par la directive <code class="directive"><a href="#serverroot">ServerRoot</a></code>.</p>
|
||
|
||
<p>Exemples :</p>
|
||
|
||
<pre class="prettyprint lang-config">Include /usr/local/apache2/conf/ssl.conf
|
||
Include /usr/local/apache2/conf/vhosts/*.conf</pre>
|
||
|
||
|
||
<p>ou encore, avec des chemins relatifs au répertoire défini par la
|
||
directive <code class="directive"><a href="#serverroot">ServerRoot</a></code> :</p>
|
||
|
||
<pre class="prettyprint lang-config">Include conf/ssl.conf
|
||
Include conf/vhosts/*.conf</pre>
|
||
|
||
|
||
<p>On peut aussi insérer des caractères génériques dans la partie
|
||
répertoires du chemin. Dans l'exemple suivant, la directive
|
||
échouera si aucun sous-répertoire de conf/vhosts ne contient au
|
||
moins un fichier *.conf :</p>
|
||
|
||
<pre class="prettyprint lang-config">Include conf/vhosts/*/*.conf</pre>
|
||
|
||
|
||
<p>Par contre, dans l'exemple suivant, la directive sera simplement
|
||
ignorée si aucun sous-répertoire de conf/vhosts ne contient au
|
||
moins un fichier *.conf :</p>
|
||
|
||
<pre class="prettyprint lang-config">IncludeOptional conf/vhosts/*/*.conf</pre>
|
||
|
||
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#includeoptional">IncludeOptional</a></code></li>
|
||
<li><code class="program"><a href="../programs/apachectl.html">apachectl</a></code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="includeoptional" id="includeoptional">Directive</a> <a name="IncludeOptional" id="IncludeOptional">IncludeOptional</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Inclusion de fichiers dans le fichier de configuration</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>IncludeOptional
|
||
<var>file-path</var>|<var>directory-path</var>|<var>wildcard</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.3.6 du serveur HTTP
|
||
Apache. Après la version 2.4.30, les chemins de fichiers non existants et
|
||
ne comportant pas de caractères génériques ne génèrent plus d'erreurs de syntaxe</td></tr>
|
||
</table>
|
||
<p>Cette directive permet d'inclure des fichiers dans les fichiers
|
||
de configuration du serveur. Elle fonctionne de manière identique à
|
||
la directive <code class="directive"><a href="#include">Include</a></code>, mais au lieu de
|
||
générer une erreur, elle sera ignorée silensieusement si malgré
|
||
l'utilisation de caractères génériques, le chemin de fichier ou de
|
||
répertoire spécifié n'existe pas dans le système de fichiers.</p>
|
||
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#include">Include</a></code></li>
|
||
<li><code class="program"><a href="../programs/apachectl.html">apachectl</a></code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="keepalive" id="keepalive">Directive</a> <a name="KeepAlive" id="KeepAlive">KeepAlive</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active les connexions HTTP persistantes</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>KeepAlive On|Off</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>KeepAlive On</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>L'extension Keep-Alive de HTTP/1.0 et l'implémentation des
|
||
connexions persistantes dans HTTP/1.1 ont rendu possibles des
|
||
sessions HTTP de longue durée, ce qui permet de transmettre
|
||
plusieurs requêtes via la même connexion TCP. Dans certains cas, le
|
||
gain en rapidité pour des documents comportant de nombreuses images
|
||
peut atteindre 50%. Pour activer les connexions persistantes,
|
||
définissez <code>KeepAlive On</code>.</p>
|
||
|
||
<p>Pour les clients HTTP/1.0, les connexions persistantes ne seront
|
||
mises en oeuvre que si elles ont été spécialement demandées par un
|
||
client. De plus, une connexion persistante avec un client HTTP/1.0
|
||
ne peut être utilisée que si la taille du contenu est connue
|
||
d'avance. Ceci implique que les contenus dynamiques comme les
|
||
sorties CGI, les pages SSI, et les listings de répertoires générés
|
||
par le serveur n'utiliseront en général pas les connexions
|
||
persistantes avec les clients HTTP/1.0. Avec les clients HTTP/1.1,
|
||
les connexions persistantes sont utilisées par défaut, sauf
|
||
instructions contraires. Si le client le demande, le transfert par
|
||
tronçons de taille fixe (chunked encoding) sera utilisé afin de
|
||
transmettre un contenu de longueur inconnue via une connexion
|
||
persistante.</p>
|
||
|
||
<p>Lorsqu'un client utilise une connexion persistante, elle comptera
|
||
pour une seule requête pour la directive <code class="directive"><a href="../mod/mpm_common.html#maxconnectionsperchild">MaxConnectionsPerChild</a></code>, quel
|
||
que soit le nombre de requêtes transmises via cette connexion.</p>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#maxkeepaliverequests">MaxKeepAliveRequests</a></code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="keepalivetimeout" id="keepalivetimeout">Directive</a> <a name="KeepAliveTimeout" id="KeepAliveTimeout">KeepAliveTimeout</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Durée pendant laquelle le serveur va attendre une requête
|
||
avant de fermer une connexion persistante</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>KeepAliveTimeout <var>nombre</var>[ms]</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>KeepAliveTimeout 5</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Le nombre de secondes pendant lesquelles Apache httpd va attendre une
|
||
requête avant de fermer la connexion. Le délai peut être défini en
|
||
millisecondes en suffixant sa valeur par ms. La valeur du délai
|
||
spécifiée par la directive <code class="directive"><a href="#timeout">Timeout</a></code> s'applique dès qu'une requête a
|
||
été reçue.</p>
|
||
|
||
<p>Donner une valeur trop élévée à
|
||
<code class="directive">KeepAliveTimeout</code> peut induire des problèmes
|
||
de performances sur les serveurs fortement chargés. Plus le délai
|
||
est élévé, plus nombreux seront les processus serveur en attente de
|
||
requêtes de la part de clients inactifs.</p>
|
||
|
||
<p>Si la directive <code class="directive">KeepAliveTimeout</code> n'est
|
||
<strong>pas</strong> définie pour un serveur virtuel à base de nom, c'est
|
||
la valeur de la paire adresse IP/port du serveur virtuel qui
|
||
correspond le mieux qui sera utilisée.</p>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="limit" id="limit">Directive</a> <a name="Limit" id="Limit"><Limit></a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Limite les contrôles d'accès que la section contient à
|
||
certaines méthodes HTTP</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code><Limit <var>méthode</var> [<var>méthode</var>] ... > ...
|
||
</Limit></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>AuthConfig, Limit</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Les contrôles d'accès s'appliquent normalement à
|
||
<strong>toutes</strong> les méthodes d'accès, et c'est en général le
|
||
comportement souhaité. <strong>Dans le cas général, les directives
|
||
de contrôle d'accès n'ont pas à être placées dans une section
|
||
<code class="directive"><Limit></code>.</strong></p>
|
||
|
||
<p>La directive <code class="directive"><Limit></code> a pour
|
||
but de limiter les effets des contrôles d'accès aux méthodes HTTP
|
||
spécifiées. Pour toutes les autres méthodes, les restrictions
|
||
d'accès contenues dans la section <code class="directive"><Limit></code> <strong>n'auront aucun
|
||
effet</strong>. L'exemple suivant n'applique les contrôles d'accès
|
||
qu'aux méthodes <code>POST</code>, <code>PUT</code>, et
|
||
<code>DELETE</code>, en laissant les autres méthodes sans protection
|
||
:</p>
|
||
|
||
<pre class="prettyprint lang-config"><Limit POST PUT DELETE>
|
||
Require valid-user
|
||
</Limit></pre>
|
||
|
||
|
||
<p>La liste des noms de méthodes peut contenir une ou plusieurs
|
||
valeurs parmi les suivantes : <code>GET</code>, <code>POST</code>,
|
||
<code>PUT</code>, <code>DELETE</code>, <code>CONNECT</code>,
|
||
<code>OPTIONS</code>, <code>PATCH</code>, <code>PROPFIND</code>,
|
||
<code>PROPPATCH</code>, <code>MKCOL</code>, <code>COPY</code>,
|
||
<code>MOVE</code>, <code>LOCK</code>, et <code>UNLOCK</code>.
|
||
<strong>Le nom de méthode est sensible à la casse.</strong> Si la
|
||
valeur <code>GET</code> est présente, les requêtes <code>HEAD</code>
|
||
seront aussi concernées. La méthode <code>TRACE</code> ne peut pas
|
||
être limitée (voir la directive <code class="directive"><a href="#traceenable">TraceEnable</a></code>).</p>
|
||
|
||
<div class="warning">Une section <code class="directive"><LimitExcept></code> doit toujours être préférée à
|
||
une section <code class="directive"><Limit></code> pour la
|
||
restriction d'accès, car une section <code class="directive"><a href="#limitexcept"><LimitExcept></a></code> fournit une protection contre
|
||
les méthodes arbitraires.</div>
|
||
|
||
<p>Les directives <code class="directive"><Limit></code> et
|
||
<code class="directive"><a href="#limitexcept"><LimitExcept></a></code>
|
||
peuvent être imbriquées. Dans ce cas, pour chaque niveau des
|
||
directives <code class="directive"><Limit></code> ou <code class="directive"><a href="#limitexcept"><LimitExcept></a></code>, ces dernières
|
||
doivent restreindre l'accès pour les méthodes auxquelles les
|
||
contrôles d'accès s'appliquent.</p>
|
||
|
||
<div class="warning">Lorsqu'on utilise les directives <code class="directive"><Limit></code> ou <code class="directive"><LimitExcept></code> avec la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>, la première directive
|
||
<code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> dont la
|
||
condition est satisfaite autorise la requête, sans tenir compte de
|
||
la présence d'autres directives <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>.</div>
|
||
|
||
<p>Par exemple, avec la configuration suivante, tous les
|
||
utilisateurs seront autorisés à effectuer des requêtes
|
||
<code>POST</code>, et la directive <code>Require group
|
||
editors</code> sera ignorée dans tous les cas :</p>
|
||
|
||
<pre class="prettyprint lang-config"><LimitExcept GET>
|
||
Require valid-user
|
||
</LimitExcept>
|
||
<Limit POST>
|
||
Require group editors
|
||
</Limit></pre>
|
||
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="limitexcept" id="limitexcept">Directive</a> <a name="LimitExcept" id="LimitExcept"><LimitExcept></a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Applique les contrôles d'accès à toutes les méthodes HTTP,
|
||
sauf celles qui sont spécifiées</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code><LimitExcept <var>méthode</var> [<var>méthode</var>] ... > ...
|
||
</LimitExcept></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>AuthConfig, Limit</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p><code class="directive"><LimitExcept></code> et
|
||
<code></LimitExcept></code> permettent de regrouper des
|
||
directives de contrôle d'accès qui s'appliqueront à toutes les
|
||
méthodes d'accès HTTP qui ne font <strong>pas</strong> partie de la
|
||
liste des arguments ; en d'autres termes, elles ont un comportement
|
||
opposé à celui de la section <code class="directive"><a href="#limit"><Limit></a></code>, et on peut les utiliser pour
|
||
contrôler aussi bien les méthodes standards que les méthodes non
|
||
standards ou non reconnues. Voir la documentation de la section
|
||
<code class="directive"><a href="#limit"><Limit></a></code> pour plus
|
||
de détails.</p>
|
||
|
||
<p>Par exemple :</p>
|
||
|
||
<pre class="prettyprint lang-config"><LimitExcept POST GET>
|
||
Require valid-user
|
||
</LimitExcept></pre>
|
||
|
||
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="limitinternalrecursion" id="limitinternalrecursion">Directive</a> <a name="LimitInternalRecursion" id="LimitInternalRecursion">LimitInternalRecursion</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine le nombre maximal de redirections internes et de
|
||
sous-requêtes imbriquées</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LimitInternalRecursion <var>nombre</var> [<var>nombre</var>]</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LimitInternalRecursion 10</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Une redirection interne survient, par exemple, quand on utilise
|
||
la directive <code class="directive"><a href="../mod/mod_actions.html#action">Action</a></code> qui
|
||
redirige en interne la requête d'origine vers un script CGI. Une
|
||
sous-requête est le mécanisme qu'utilise Apache httpd pour déterminer ce
|
||
qui se passerait pour un URI s'il faisait l'objet d'une requête. Par
|
||
exemple, <code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code> utilise les sous-requêtes pour
|
||
rechercher les fichiers listés dans la directive <code class="directive"><a href="../mod/mod_dir.html#directoryindex">DirectoryIndex</a></code>.</p>
|
||
|
||
<p>La directive <code class="directive">LimitInternalRecursion</code> permet
|
||
d'éviter un crash du serveur dû à un bouclage infini de redirections
|
||
internes ou de sous-requêtes. De tels bouclages sont dus en général
|
||
à des erreurs de configuration.</p>
|
||
|
||
<p>La directive accepte, comme arguments, deux limites qui sont
|
||
évaluées à chaque requête. Le premier <var>nombre</var> est le
|
||
nombre maximum de redirections internes qui peuvent se succéder. Le
|
||
second <var>nombre</var> détermine la profondeur d'imbrication
|
||
maximum des sous-requêtes. Si vous ne spécifiez qu'un seul
|
||
<var>nombre</var>, il sera affecté aux deux limites.</p>
|
||
|
||
<pre class="prettyprint lang-config">LimitInternalRecursion 5</pre>
|
||
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="limitrequestbody" id="limitrequestbody">Directive</a> <a name="LimitRequestBody" id="LimitRequestBody">LimitRequestBody</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>limite la taille maximale du corps de la requête HTTP
|
||
envoyée par le client</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LimitRequestBody <var>octets</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LimitRequestBody 1073741824</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>All</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Dans les versions 2.4.53 et antérieures du serveur HTTP Apache,
|
||
la valeur par défaut était 0 (aucune limite)</td></tr>
|
||
</table>
|
||
<p>Cette directive permet de spécifier la taille maximale d'un corps de
|
||
requête, en <var>octets</var>. Une valeur de <var>0</var> signifie « sans
|
||
limites ».</p>
|
||
|
||
<p>La directive <code class="directive">LimitRequestBody</code> permet de
|
||
définir une limite pour la taille maximale autorisée du corps d'une
|
||
requête HTTP en tenant compte du contexte dans lequel la directive
|
||
a été placée (c'est à dire au niveau du serveur, d'un répertoire,
|
||
d'un fichier ou d'une localisation). Si la requête du client dépasse
|
||
cette limite, le serveur répondra par un message d'erreur et ne
|
||
traitera pas la requête. La taille du corps d'une requête normale va
|
||
varier de manière importante en fonction de la nature de la
|
||
ressource et des méthodes autorisées pour cette dernière. Les
|
||
scripts CGI utilisent souvent le corps du message pour extraire les
|
||
informations d'un formulaire. Les implémentations de la méthode
|
||
<code>PUT</code> nécessitent une valeur au moins aussi élevée que la
|
||
taille maximale des représentations que le serveur désire accepter
|
||
pour cette ressource.</p>
|
||
|
||
<p>L'administrateur du serveur peut utiliser cette directive pour
|
||
contrôler plus efficacement les comportements anormaux des requêtes
|
||
des clients, ce qui lui permettra de prévenir certaines formes
|
||
d'attaques par déni de service.</p>
|
||
|
||
<p>Si par exemple, vous autorisez le chargement de fichiers vers une
|
||
localisation particulière, et souhaitez limiter la taille des
|
||
fichiers chargés à 100Ko, vous pouvez utiliser la directive suivante
|
||
:</p>
|
||
|
||
<pre class="prettyprint lang-config">LimitRequestBody 102400</pre>
|
||
|
||
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="limitrequestfields" id="limitrequestfields">Directive</a> <a name="LimitRequestFields" id="LimitRequestFields">LimitRequestFields</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Limite le nombre de champs d'en-tête autorisés dans une
|
||
requête HTTP</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LimitRequestFields <var>nombre</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LimitRequestFields 100</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p><var>nombre</var> est un entier de 0 à 32767. La valeur 0 signifie un
|
||
nombre de champs illimité. La valeur par défaut est définie à la compilation
|
||
par la constante <code>DEFAULT_LIMIT_REQUEST_FIELDS</code> (100 selon la
|
||
distribution).</p>
|
||
|
||
<p>La directive <code class="directive">LimitRequestFields</code> permet à
|
||
l'administrateur du serveur de modifier le nombre maximum de champs
|
||
d'en-tête autorisés dans une requête HTTP. Pour un serveur, cette
|
||
valeur doit être supérieure au nombre de champs qu'une requête
|
||
client normale peut contenir. Le nombre de champs d'en-tête d'une
|
||
requête qu'un client utilise dépasse rarement 20, mais ce nombre
|
||
peut varier selon les implémentations des clients, et souvent en
|
||
fonction des extensions que les utilisateurs configurent dans leurs
|
||
navigateurs pour supporter la négociation de contenu détaillée. Les
|
||
extensions HTTP optionnelles utilisent souvent les
|
||
champs d'en-tête des requêtes.</p>
|
||
|
||
<p>L'administrateur du serveur peut utiliser cette directive pour
|
||
contrôler plus efficacement les comportements anormaux des requêtes
|
||
des clients, ce qui lui permettra de prévenir certaines formes
|
||
d'attaques par déni de service. La valeur spécifiée doit être
|
||
augmentée si les clients standards reçoivent une erreur du serveur
|
||
indiquant que la requête comportait un nombre d'en-têtes trop
|
||
important.</p>
|
||
|
||
<p>Par exemple :</p>
|
||
|
||
<pre class="prettyprint lang-config">LimitRequestFields 50</pre>
|
||
|
||
|
||
<div class="warning"><h3>Avertissement</h3>
|
||
<p>Dans le cas des serveurs virtuels à base de noms, la valeur de
|
||
cette directive est extraite du serveur virtuel par défaut (le
|
||
premier de la liste) pour la paire adresse IP/port.</p>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="limitrequestfieldsize" id="limitrequestfieldsize">Directive</a> <a name="LimitRequestFieldSize" id="LimitRequestFieldSize">LimitRequestFieldSize</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dédinit la taille maximale autorisée d'un en-tête de
|
||
requête HTTP</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LimitRequestFieldSize <var>octets</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LimitRequestFieldSize 8190</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Cette directive permet de définir le nombre maximum
|
||
d'<var>octets</var> autorisés dans un en-tête de requête HTTP.</p>
|
||
|
||
<p>La directive <code class="directive">LimitRequestFieldSize</code> permet
|
||
à l'administrateur du serveur de définir la taille
|
||
maximale autorisée d'un en-tête de requête HTTP. Pour un serveur,
|
||
cette valeur doit être suffisamment grande pour contenir tout
|
||
en-tête d'une requête client normale. La taille d'un champ d'en-tête
|
||
de requête normal va varier selon les implémentations des clients,
|
||
et en fonction des extensions que les utilisateurs
|
||
configurent dans leurs navigateurs pour supporter la négociation de
|
||
contenu détaillée. Les en-têtes d'authentification SPNEGO peuvent
|
||
atteindre une taille de 12392 octets.</p>
|
||
|
||
<p>L'administrateur du serveur peut utiliser cette directive pour
|
||
contrôler plus efficacement les comportements anormaux des requêtes
|
||
des clients, ce qui lui permettra de prévenir certaines formes
|
||
d'attaques par déni de service.</p>
|
||
|
||
<p>Par exemple :</p>
|
||
|
||
<pre class="prettyprint lang-config">LimitRequestFieldSize 4094</pre>
|
||
|
||
|
||
<div class="note">Dans des conditions normales, la valeur par défaut de cette
|
||
directive ne doit pas être modifiée.</div>
|
||
|
||
<div class="warning"><h3>Avertissement</h3>
|
||
<p>Dans le cas des serveurs virtuels à base de noms, la valeur de
|
||
cette directive est extraite du serveur virtuel par défaut (le
|
||
premier de la liste) pour lequel la paire adresse IP/port
|
||
correspond le mieux.</p>
|
||
</div>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="limitrequestline" id="limitrequestline">Directive</a> <a name="LimitRequestLine" id="LimitRequestLine">LimitRequestLine</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit la taille maximale d'une ligne de requête
|
||
HTTP</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LimitRequestLine <var>octets</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LimitRequestLine 8190</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Cette directive permet de définir la taille maximale autorisée
|
||
pour une ligne de requête HTTP en <var>octets</var>.</p>
|
||
|
||
<p>La directive <code class="directive">LimitRequestLine</code> permet à
|
||
l'administrateur du serveur de définir la taille
|
||
maximale autorisée d'une ligne de requête HTTP client. Comme une
|
||
requête comporte une méthode HTTP, un URI, et une version de
|
||
protocole, la directive <code class="directive">LimitRequestLine</code>
|
||
impose une restriction sur la longueur maximale autorisée pour un
|
||
URI dans une requête au niveau du serveur. Pour un serveur, cette
|
||
valeur doit être suffisamment grande pour référencer les noms de
|
||
toutes ses ressources, y compris toutes informations pouvant être
|
||
ajoutées dans la partie requête d'une méthode <code>GET</code>.</p>
|
||
|
||
<p>L'administrateur du serveur peut utiliser cette directive pour
|
||
contrôler plus efficacement les comportements anormaux des requêtes
|
||
des clients, ce qui lui permettra de prévenir certaines formes
|
||
d'attaques par déni de service.</p>
|
||
|
||
<p>Par exemple :</p>
|
||
|
||
<pre class="prettyprint lang-config">LimitRequestLine 4094</pre>
|
||
|
||
|
||
<div class="note">Dans des conditions normales, cette directive doit conserver
|
||
sa valeur par défaut.</div>
|
||
|
||
<div class="warning"><h3>Avertissement</h3>
|
||
<p>Dans le cas des serveurs virtuels à base de noms, la valeur de
|
||
cette directive est extraite du serveur virtuel par défaut (le
|
||
premier de la liste) pour lequel la paire adresse IP/port
|
||
correspond le mieux.</p>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="limitxmlrequestbody" id="limitxmlrequestbody">Directive</a> <a name="LimitXMLRequestBody" id="LimitXMLRequestBody">LimitXMLRequestBody</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit la taille maximale du corps d'une requête au format
|
||
XML</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LimitXMLRequestBody <var>octets</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LimitXMLRequestBody 1000000</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>All</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Taille maximale (en octets) du corps d'une requête au format XML. Une
|
||
valeur de <code>0</code> appliquera une limite physique (différente selon
|
||
que le système est sur 32 ou 64 bits) permettant à XML de s'étaler jusqu'aux
|
||
limites de la mémoire adressable du système, mais elle n'existe qu'à des
|
||
fins de compatibilité et il est déconseillé de l'utiliser car elle ne tient
|
||
pas compte de la mémoire consommée ailleurs et des requêtes simultanées, ce
|
||
qui pourrait provoquer un dépassement de mémoire global du système.
|
||
</p>
|
||
|
||
<p>Exemple :</p>
|
||
|
||
<pre class="prettyprint lang-config"># Limitation à 1 Mo
|
||
LimitXMLRequestBody 1073741824</pre>
|
||
|
||
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="location" id="location">Directive</a> <a name="Location" id="Location"><Location></a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>N'applique les directives contenues qu'aux URLs
|
||
spécifiées</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code><Location
|
||
<var>chemin URL</var>|<var>URL</var>> ... </Location></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive"><Location></code>
|
||
limite la portée des directives contenues aux URLs définies par
|
||
l'argument URL. Elle est similaire à la directive <code class="directive"><a href="#directory"><Directory></a></code>, et marque le
|
||
début d'une section qui se termine par une directive
|
||
<code></Location></code>. Les sections <code class="directive"><Location></code> sont traitées selon l'ordre dans
|
||
lequel elles apparaissent dans le fichier de configuration, mais
|
||
après les sections <code class="directive"><a href="#directory"><Directory></a></code> et la lecture des
|
||
fichiers <code>.htaccess</code>, et après les sections <code class="directive"><a href="#files"><Files></a></code>.</p>
|
||
|
||
<p>Les sections <code class="directive"><Location></code>
|
||
agissent complètement en dehors du système de fichiers. Ceci a de
|
||
nombreuses conséquences. Parmi les plus importantes, on ne doit pas
|
||
utiliser les sections <code class="directive"><Location></code>
|
||
pour contrôler l'accès aux répertoires du système de fichiers. Comme
|
||
plusieurs URLs peuvent correspondre au même répertoire du système de
|
||
fichiers, un tel contrôle d'accès pourrait être contourné.</p>
|
||
|
||
<p>Les directives que contient cette section seront appliquées aux
|
||
requêtes si la partie chemin de l'URL satisfait à l'un au moins de
|
||
ces critères :
|
||
</p>
|
||
<ul>
|
||
<li>Le chemin spécifié correspond exactement à la partie chemin de
|
||
l'URL.
|
||
</li>
|
||
<li>Le chemin spécifié, qui se termine par un slash, est un
|
||
préfixe de la partie chemin de l'URL (traité comme une racine du
|
||
contexte).
|
||
</li>
|
||
<li>Le chemin spécifié, si on lui ajoute un slash de fin, est un
|
||
préfixe de la partie chemin de l'URL (aussi traité comme une racine du
|
||
contexte).
|
||
</li>
|
||
</ul>
|
||
<p>
|
||
Dans l'exemple ci-dessous, où aucun slash de fin n'est utilisé, les
|
||
directives contenues dans la section s'appliqueront à /private1,
|
||
/private1/ et /private1/file.txt, mais pas à /private1other.
|
||
</p>
|
||
<pre class="prettyprint lang-config"><Location "/private1">
|
||
# ...
|
||
</Location></pre>
|
||
|
||
<p>
|
||
De même, dans l'exemple ci-dessous, où l'on utilise un slash de fin, les
|
||
directives contenues dans la section s'appliqueront à /private2/ et
|
||
à /private2/file.txt, mais pas à /private2other.
|
||
</p>
|
||
<pre class="prettyprint lang-config"><Location "/private2<em>/</em>">
|
||
# ...
|
||
</Location></pre>
|
||
|
||
|
||
<div class="note"><h3>Quand utiliser la section <code class="directive"><Location></code></h3>
|
||
|
||
<p>Vous pouvez utiliser une section <code class="directive"><Location></code> pour appliquer des directives à
|
||
des contenus situés en dehors du système de fichiers. Pour les
|
||
contenus situés à l'intérieur du système de fichiers, utilisez
|
||
plutôt les sections <code class="directive"><a href="#directory"><Directory></a></code> et <code class="directive"><a href="#files"><Files></a></code>. <code><Location
|
||
"/"></code> constitue une exception et permet d'appliquer aisément
|
||
une configuration à l'ensemble du serveur.</p>
|
||
</div>
|
||
|
||
<p>Pour toutes les requêtes originales (non mandatées), l'argument
|
||
URL est un chemin d'URL de la forme
|
||
<code>/chemin/</code>. <em>Aucun protocole, nom d'hôte, port, ou chaîne
|
||
de requête ne doivent apparaître.</em> Pour les requêtes mandatées, l'URL
|
||
spécifiée doit être de la forme
|
||
<code>protocole://nom_serveur/chemin</code>, et vous devez inclure
|
||
le préfixe.</p>
|
||
|
||
<p>L'URL peut contenir des caractères génériques. Dans une chaîne
|
||
avec caractères génériques, <code>?</code> correspond à un caractère
|
||
quelconque, et <code>*</code> à toute chaîne de caractères. Les
|
||
caractères génériques ne peuvent pas remplacer un / dans le chemin
|
||
URL.</p>
|
||
|
||
<p>On peut aussi utiliser les <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">Expressions
|
||
rationnelles</a>, moyennant l'addition d'un caractère
|
||
<code>~</code>. Par exemple :</p>
|
||
|
||
<pre class="prettyprint lang-config"><Location ~ "/(extra|special)/data">
|
||
#...
|
||
</Location></pre>
|
||
|
||
|
||
<p>concernerait les URLs contenant les sous-chaîne
|
||
<code>/extra/data</code> ou <code>/special/data</code>. La directive
|
||
<code class="directive"><a href="#locationmatch"><LocationMatch></a></code>
|
||
présente un comportement identique à la version avec expressions
|
||
rationnelles de la directive <code class="directive"><Location></code>, et son utilisation est
|
||
préférable à l'utilisation de cette dernière pour la simple raison
|
||
qu'il est difficile de distinguer <code>~</code> de <code>-</code>
|
||
dans la plupart des fontes.</p>
|
||
|
||
<p>La fonctionnalité <code class="directive"><Location></code>
|
||
est particulièrement utile avec la directive <code class="directive"><a href="#sethandler">SetHandler</a></code>. Par exemple, pour activer les
|
||
requêtes d'état, mais ne les autoriser que depuis des navigateurs
|
||
appartenant au domaine <code>example.com</code>, vous pouvez
|
||
utiliser :</p>
|
||
|
||
<pre class="prettyprint lang-config"><Location "/status">
|
||
SetHandler server-status
|
||
Require host example.com
|
||
</Location></pre>
|
||
|
||
|
||
<div class="note"><h3>Note à propos du slash (/)</h3> <p>La signification du
|
||
caractère slash dépend de l'endroit où il se trouve dans l'URL. Les
|
||
utilisateurs peuvent être habitués à son comportement dans le système de
|
||
fichiers où plusieurs slashes successifs sont souvent réduits à un slash
|
||
unique (en d'autres termes, <code>/home///foo</code> est identique à
|
||
<code>/home/foo</code>). Dans l'espace de nommage des URLs, ce n'est
|
||
cependant pas toujours vrai si la directive <code class="directive"><a href="#mergeslashes">MergeSlashes</a></code> a été définie à "OFF". Pour la
|
||
directive <code class="directive"><a href="#locationmatch"><LocationMatch></a></code>
|
||
et la version avec expressions rationnelles de la directive <code class="directive"><Location></code>, vous devez spécifier explicitement les
|
||
slashes multiples si les slashes ne sont pas fusionnés.</p>
|
||
|
||
<p>Par exemple, <code><LocationMatch "^/abc"></code> va
|
||
correspondre à l'URL <code>/abc</code> mais pas à l'URL <code>
|
||
//abc</code>. La directive <code class="directive"><Location></code> sans expression rationnelle se comporte de
|
||
la même manière lorsqu'elle est utilisée pour des requêtes
|
||
mandatées. Par contre, lorsque la directive <code class="directive"><Location></code> sans expression rationnelle
|
||
est utilisée pour des requêtes non mandatées, elle fera
|
||
correspondre implicitement les slashes multiples à des slashes
|
||
uniques. Par exemple, si vous spécifiez <code><Location
|
||
"/abc/def"></code>, une requête de la forme
|
||
<code>/abc//def</code> correspondra.</p>
|
||
</div>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><a href="../sections.html">Comment fonctionnent les sections
|
||
<Directory>, <Location> et <Files></a> pour une
|
||
explication de la manière dont ces différentes sections se combinent
|
||
entre elles à la réception d'une requête.</li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="locationmatch" id="locationmatch">Directive</a> <a name="LocationMatch" id="LocationMatch"><LocationMatch></a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>N'applique les directives contenues qu'aux URLs
|
||
correspondant à une expression rationnelle</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code><LocationMatch
|
||
<var>regex</var>> ... </LocationMatch></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive"><LocationMatch></code>
|
||
limite la portée des directives contenues à l'URL spécifiée, de
|
||
manière identique à la directive <code class="directive"><a href="#location"><Location></a></code>. Mais son argument permettant de
|
||
spécifier les URLs concernées est une <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression rationnelle</a> au lieu d'une simple
|
||
chaîne de caractères. Par exemple :</p>
|
||
|
||
<pre class="prettyprint lang-config"><LocationMatch "/(extra|special)/data">
|
||
# ...
|
||
</LocationMatch></pre>
|
||
|
||
|
||
<p>correspondrait à toute URL contenant les sous-chaînes
|
||
<code>/extra/data</code> ou <code>/special/data</code>.</p>
|
||
|
||
<div class="note"><p>Si vous recherchez une URL <strong>commençant par</strong>
|
||
plutôt que seulement contenant <code>/extra/data</code>, préfixez
|
||
l'expression rationnelle avec un <code>^</code>.</p>
|
||
|
||
<pre class="prettyprint lang-config"><LocationMatch "^/(extra|special)/data"></pre>
|
||
|
||
</div>
|
||
|
||
<p>A partir de la version 2.4.8, les groupes nommés et les
|
||
références arrières sont extraits et enregistrés dans
|
||
l'environnement avec leur nom en majuscules et préfixé
|
||
par "MATCH_". Ceci permet
|
||
de référencer des URLs dans des <a href="../expr.html">expressions</a>
|
||
ou au sein de modules comme <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>. Pour
|
||
éviter toute confusion, les références arrières numérotées (non
|
||
nommées) sont ignorées. Vous devez utiliser à la place des groupes
|
||
nommés.</p>
|
||
|
||
<pre class="prettyprint lang-config"><LocationMatch "^/combined/(?<sitename>[^/]+)">
|
||
Require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
|
||
</LocationMatch></pre>
|
||
|
||
|
||
<div class="note"><h3>Note à propos du slash '/'</h3> <p>La signification du
|
||
caractère slash '/' dépend de l'endroit où il apparaît dans une URL. Les
|
||
utilisateurs sont habitués à voir de multiples slashes adjacents réduits à
|
||
un seul au sein du système de fichiers (par exemple,
|
||
<code>/home///foo</code> est équivalent à <code>/home/foo</code>). Ce n'est
|
||
n'est cependant pas toujours vrai au sein des URLs si la directive
|
||
<code class="directive"><a href="#mergeslashes">MergeSlashes</a></code> a été définie à "OFF". En
|
||
effet, si vous souhaitez spécifier plusieurs slashes, vous devez le faire
|
||
explicitement au sein de la directive <code class="directive"><a href="#locationmatch"><LocationMatch></a></code> et de la version regex de la
|
||
directive <code class="directive"><Location></code>, si les slashes ne
|
||
sont pas fusionnés.</p>
|
||
|
||
<p>Par exemple, <code><LocationMatch "^/abc"></code> correspondra à
|
||
l'URL <code>/abc</code>, mais pas à l'URL <code>//abc</code>. La directive
|
||
(non-regex) <code class="directive"><Location></code> se comporte de
|
||
la même manière lorsqu'elle est utilisée dans les requêtes de mandataire.
|
||
Par contre, pour les autres types de requêtes, la directive <code class="directive"><Location></code> considérera plusieurs slashes
|
||
adjacents comme équivalents à un seul slash. Par exemple, si vous
|
||
spécifiez <code><Location "/abc/def"></code>, une requête pour
|
||
<code>/abc//def</code> correspondra.</p>
|
||
</div>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><a href="../sections.html">Comment fonctionnent les sections
|
||
<Directory>, <Location> et <Files></a> pour une
|
||
explication de la manière dont ces différentes sections se combinent
|
||
entre elles à la réception d'une requête.</li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="loglevel" id="loglevel">Directive</a> <a name="LogLevel" id="LogLevel">LogLevel</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Contrôle la verbosité du journal des erreurs</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LogLevel [<var>module</var>:]<var>niveau</var>
|
||
[<var>module</var>:<var>niveau</var>] ...
|
||
</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LogLevel warn</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>La configuration du niveau de journalisation par module
|
||
et par répertoire est disponible depuis la version 2.3.6 du serveur HTTP
|
||
Apache</td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">LogLevel</code> permet d'ajuster la
|
||
verbosité des messages enregistrés dans les journaux d'erreur (voir
|
||
la directive <code class="directive"><a href="#errorlog">ErrorLog</a></code>
|
||
directive). Les <var>niveau</var>x disponibles sont présentés
|
||
ci-après, par ordre de criticité décroissante :</p>
|
||
|
||
<table class="bordered">
|
||
|
||
<tr>
|
||
<th><strong>Niveau</strong> </th>
|
||
|
||
<th><strong>Description</strong> </th>
|
||
|
||
<th><strong>Exemple</strong> </th>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><code>emerg</code> </td>
|
||
|
||
<td>Urgences - le système est inutilisable.</td>
|
||
|
||
<td>"Child cannot open lock file. Exiting"</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><code>alert</code> </td>
|
||
|
||
<td>Des mesures doivent être prises immédiatement.</td>
|
||
|
||
<td>"getpwuid: couldn't determine user name from uid"</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><code>crit</code> </td>
|
||
|
||
<td>Conditions critiques.</td>
|
||
|
||
<td>"socket: Failed to get a socket, exiting child"</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><code>error</code> </td>
|
||
|
||
<td>Erreurs.</td>
|
||
|
||
<td>"Premature end of script headers"</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><code>warn</code> </td>
|
||
|
||
<td>Avertissements.</td>
|
||
|
||
<td>"child process 1234 did not exit, sending another
|
||
SIGHUP"</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><code>notice</code> </td>
|
||
|
||
<td>Evènement important mais normal.</td>
|
||
|
||
<td>"httpd: caught SIGBUS, attempting to dump core in
|
||
..."</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><code>info</code> </td>
|
||
|
||
<td>Informations.</td>
|
||
|
||
<td>"Server seems busy, (you may need to increase
|
||
StartServers, or Min/MaxSpareServers)..."</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><code>debug</code> </td>
|
||
|
||
<td>Messages de débogage.</td>
|
||
|
||
<td>"Opening config file ..."</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>trace1</code> </td>
|
||
|
||
<td>Messages de traces</td>
|
||
|
||
<td>"proxy: FTP: control connection complete"</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>trace2</code> </td>
|
||
|
||
<td>Messages de traces</td>
|
||
|
||
<td>"proxy: CONNECT: sending the CONNECT request to the remote proxy"</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>trace3</code> </td>
|
||
|
||
<td>Messages de traces</td>
|
||
|
||
<td>"openssl: Handshake: start"</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>trace4</code> </td>
|
||
|
||
<td>Messages de traces</td>
|
||
|
||
<td>"read from buffered SSL brigade, mode 0, 17 bytes"</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>trace5</code> </td>
|
||
|
||
<td>Messages de traces</td>
|
||
|
||
<td>"map lookup FAILED: map=rewritemap key=keyname"</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>trace6</code> </td>
|
||
|
||
<td>Messages de traces</td>
|
||
|
||
<td>"cache lookup FAILED, forcing new map lookup"</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>trace7</code> </td>
|
||
|
||
<td>Messages de traces, enregistrement d'une grande quantité de
|
||
données</td>
|
||
|
||
<td>"| 0000: 02 23 44 30 13 40 ac 34 df 3d bf 9a 19 49 39 15 |"</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>trace8</code> </td>
|
||
|
||
<td>Messages de traces, enregistrement d'une grande quantité de
|
||
données</td>
|
||
|
||
<td>"| 0000: 02 23 44 30 13 40 ac 34 df 3d bf 9a 19 49 39 15 |"</td>
|
||
</tr>
|
||
</table>
|
||
|
||
<p>Lorsqu'un niveau particulier est spécifié, les messages de tous
|
||
les autres niveaux de criticité supérieure seront aussi enregistrés.
|
||
<em>Par exemple</em>, si <code>LogLevel info</code> est spécifié,
|
||
les messages de niveaux <code>notice</code> et <code>warn</code>
|
||
seront aussi émis.</p>
|
||
|
||
<p>Il est recommandé d'utiliser un niveau <code>crit</code> ou
|
||
inférieur.</p>
|
||
|
||
<p>Par exemple :</p>
|
||
|
||
<pre class="prettyprint lang-config">LogLevel notice</pre>
|
||
|
||
|
||
<div class="note"><h3>Note</h3>
|
||
<p>Si la journalisation s'effectue directement dans un fichier,
|
||
les messages de niveau <code>notice</code> ne peuvent pas être
|
||
supprimés et sont donc toujours journalisés. Cependant, ceci ne
|
||
s'applique pas lorsque la journalisation s'effectue vers
|
||
<code>syslog</code>.</p>
|
||
</div>
|
||
|
||
<p>Spécifier un niveau sans nom de module va attribuer ce niveau à
|
||
tous les modules. Spécifier un niveau avec nom de module va
|
||
attribuer ce niveau à ce module seulement. Il est possible de
|
||
spécifier un module par le nom de son fichier source ou par son
|
||
identificateur, avec ou sans le suffixe <code>_module</code>. Les
|
||
trois spécifications suivantes sont donc équivalentes :</p>
|
||
|
||
<pre class="prettyprint lang-config">LogLevel info ssl:warn
|
||
LogLevel info mod_ssl.c:warn
|
||
LogLevel info ssl_module:warn</pre>
|
||
|
||
|
||
<p>Il est aussi possible d'attribuer un niveau de journalisation par
|
||
répertoire :</p>
|
||
|
||
<pre class="prettyprint lang-config">LogLevel info
|
||
<Directory "/usr/local/apache/htdocs/app">
|
||
LogLevel debug
|
||
</Directory></pre>
|
||
|
||
|
||
<div class="note">
|
||
La configuration du niveau de journalisation par répertoire
|
||
n'affecte que les messages journalisés après l'interprétation de
|
||
la requête et qui sont associés à cette dernière. Les messages
|
||
de journalisation associés à la connexion ou au serveur ne sont
|
||
pas affectés.
|
||
</div>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#errorlog">ErrorLog</a></code></li>
|
||
<li><code class="directive"><a href="#errorlogformat">ErrorLogFormat</a></code></li>
|
||
<li><a href="../logs.html">Journaux du serveur HTTP Apache</a></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="maxkeepaliverequests" id="maxkeepaliverequests">Directive</a> <a name="MaxKeepAliveRequests" id="MaxKeepAliveRequests">MaxKeepAliveRequests</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre de requêtes permises pour une connexion
|
||
persistante</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>MaxKeepAliveRequests <var>nombre</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>MaxKeepAliveRequests 100</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">MaxKeepAliveRequests</code> permet
|
||
de limiter le nombre de requêtes autorisées par connexion lorsque
|
||
<code class="directive"><a href="#keepalive">KeepAlive</a></code> est à "on". Si sa
|
||
valeur est <code>0</code>, le nombre de requêtes autorisées est
|
||
illimité. Il est recommandé de définir une valeur assez haute pour
|
||
des performances du serveur maximales.</p>
|
||
|
||
<p>Par exemple :</p>
|
||
|
||
<pre class="prettyprint lang-config">MaxKeepAliveRequests 500</pre>
|
||
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="maxrangeoverlaps" id="maxrangeoverlaps">Directive</a> <a name="MaxRangeOverlaps" id="MaxRangeOverlaps">MaxRangeOverlaps</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre de chevauchements de segments de données autorisé
|
||
(par exemple <code>100-200,150-300</code>) avant le renvoi de la
|
||
ressource complète</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>MaxRangeOverlaps default | unlimited | none | <var>nombre de
|
||
chevauchements</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>MaxRangeOverlaps 20</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.15 du serveur HTTP
|
||
Apache</td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">MaxRangeOverlaps</code> permet
|
||
de limiter le nombre de chevauchements de segments de données HTTP
|
||
autorisé par le serveur. Si le nombre de
|
||
chevauchements de segments demandé est supérieur au nombre maximal
|
||
autorisé, la ressource sera renvoyée dans son intégralité.</p>
|
||
|
||
<dl>
|
||
<dt><strong>default</strong></dt>
|
||
<dd>Limite le nombre de chevauchements de segments à la valeur
|
||
par défaut 20 définie à la compilation.</dd>
|
||
|
||
<dt><strong>none</strong></dt>
|
||
<dd>Aucun chevauchement de segment n'est autorisé.</dd>
|
||
|
||
<dt><strong>unlimited</strong></dt>
|
||
<dd>Le nombre de chevauchements de segments est illimité.</dd>
|
||
|
||
<dt><var>number-of-ranges</var></dt>
|
||
<dd>Un nombre positif représente le nombre maximal de
|
||
chevauchements de segments autorisé par le serveur.</dd>
|
||
</dl>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="maxrangereversals" id="maxrangereversals">Directive</a> <a name="MaxRangeReversals" id="MaxRangeReversals">MaxRangeReversals</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre d'inversions d'ordre autorisé dans la spécification des
|
||
segments de données (par exemple <code>100-200,50-70</code>) avant le renvoi de la
|
||
ressource complète</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>MaxRangeReversals default | unlimited | none | <var>nombre
|
||
d'inversions</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>MaxRangeReversals 20</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.15 du serveur HTTP
|
||
Apache</td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">MaxRangeReversals</code> permet
|
||
de limiter le nombre d'inversions d'ordre dans la spécification
|
||
des segments de données HTTP
|
||
autorisé par le serveur. Si le nombre
|
||
d'inversions demandé est supérieur au nombre maximal
|
||
autorisé, la ressource sera renvoyée dans son intégralité.</p>
|
||
|
||
<dl>
|
||
<dt><strong>default</strong></dt>
|
||
<dd>Limite le nombre d'inversions à la valeur
|
||
par défaut 20 définie à la compilation.</dd>
|
||
|
||
<dt><strong>none</strong></dt>
|
||
<dd>Aucune inversion n'est autorisée.</dd>
|
||
|
||
<dt><strong>unlimited</strong></dt>
|
||
<dd>Le nombre d'inversions est illimité.</dd>
|
||
|
||
<dt><var>number-of-ranges</var></dt>
|
||
<dd>Un nombre positif représente le nombre maximal
|
||
d'inversions autorisé par le serveur.</dd>
|
||
</dl>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="maxranges" id="maxranges">Directive</a> <a name="MaxRanges" id="MaxRanges">MaxRanges</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre de segments de données autorisé avant le renvoi de
|
||
l'intégralité de la ressource</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>MaxRanges default | unlimited | none | <var>nombre de segments</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>MaxRanges 200</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.15 du serveur HTTP
|
||
Apache</td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">MaxRanges</code> permet de limiter
|
||
le nombre de segments de données que le serveur va renvoyer au
|
||
client. Si un nombre de segments plus important est demandé, la
|
||
ressource sera renvoyée dans son intégralité.</p>
|
||
|
||
<dl>
|
||
<dt><strong>default</strong></dt>
|
||
<dd>Limite le nombre de segments de données à 200 (valeur par
|
||
défaut définie à la compilation).</dd>
|
||
|
||
<dt><strong>none</strong></dt>
|
||
<dd>Les en-têtes Range sont ignorés.</dd>
|
||
|
||
<dt><strong>unlimited</strong></dt>
|
||
<dd>Le nombre de segments de données est illimité.</dd>
|
||
|
||
<dt><var>nombre de segments</var></dt>
|
||
<dd>Un nombre positif représentera la nombre de segments de
|
||
données maximal que le serveur renverra au client.</dd>
|
||
</dl>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="mergeslashes" id="mergeslashes">Directive</a> <a name="MergeSlashes" id="MergeSlashes">MergeSlashes</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fusion des slashes consécutifs dans les URLs par le serveur.
|
||
</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>MergeSlashes ON|OFF</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>MergeSlashes ON</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.39 du serveur HTTP Apache</td></tr>
|
||
</table>
|
||
<p>Par défaut, le serveur fusionne les caractères slash ('/') multiples et
|
||
consécutifs dans la partie chemin de l'URL d'une requête.</p>
|
||
|
||
<p>Lorsque cette partie chemin de l'URL est appliquée au système de
|
||
fichiers, ces slashes multiples sont inutiles. Il peut être cependant
|
||
préférable de conserver ces slashes multiples et consécutifs car ils peuvent
|
||
avoir une signification dans le cas des URLs gérées différemment, par
|
||
exemple par CGI ou par un serveur mandataire. Il convient alors de définir
|
||
<code class="directive">MergeSlashes</code> à <em>OFF</em> pour conserver les
|
||
slashes multiples consécutifs, ce qui correspond au comportement
|
||
traditionnel.</p>
|
||
<p>
|
||
Lorsque cette directive est définie à "OFF", les expressions rationnelles utilisées dans le
|
||
fichier de configuration pour effectuer une comparaison de la partie chemin
|
||
de l'URL ((<code class="directive">LocationMatch</code>,
|
||
<code class="directive">RewriteRule</code>, ...) doivent en effet tenir compte de la
|
||
présence éventuelle de slashes multiples et consécutifs. Les sections
|
||
<code class="directive">Location</code> à base d'expressions non rationnelles
|
||
correspondent toujours à des URLs avec slashes fusionnés et ne peuvent pas
|
||
tenir compte des slashes multiples.</p>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="mergetrailers" id="mergetrailers">Directive</a> <a name="MergeTrailers" id="MergeTrailers">MergeTrailers</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine si les données supplémentaires (trailers) sont
|
||
fusionnées avec les en-têtes</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>MergeTrailers [on|off]</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>MergeTrailers off</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.11 du serveur HTTP
|
||
Apache</td></tr>
|
||
</table>
|
||
<p>Cette directive permet de contrôler la fusion des données HTTP
|
||
supplémentaires (trailers) avec la représentation interne des
|
||
en-têtes. Cette fusion intervient lorsque le corps de la requête a
|
||
été entièrement reçu, bien longtemps après que la majeure partie du
|
||
traitement des en-têtes ait une chance de pouvoir examiner ou
|
||
modifier les en-têtes de la requête.</p>
|
||
<p>Cette option a été introduite dans un souci de compatibilité avec
|
||
les versions antérieures à 2.4.11, où les données supplémentaires
|
||
étaient systématiquement fusionnées avec les en-têtes de la requête.</p>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="mutex" id="mutex">Directive</a> <a name="Mutex" id="Mutex">Mutex</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit les mécanismes de mutex et le repertoire du fichier
|
||
verrou pour tous les mutex ou seulement les mutex spécifiés</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Mutex <var>mécanisme</var> [default|<var>nom-mutex</var>] ... [OmitPID]</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>Mutex default</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.4 du serveur HTTP Apache</td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">Mutex</code> permet de définir le
|
||
mécanisme de mutex, et éventuellement le répertoire du fichier
|
||
verrou que les modules et httpd utilisent pour sérialiser l'accès aux
|
||
ressources. Spécifiez <code>default</code> comme second argument
|
||
pour modifier la configuration de tous les mutex ; spécifiez un nom
|
||
de mutex (voir la table ci-dessous) comme second argument pour
|
||
ne modifier que la configuration de ce mutex.</p>
|
||
|
||
<p>La directive <code class="directive">Mutex</code> est typiquement
|
||
utilisée dans les situations exceptionnelles suivantes :</p>
|
||
|
||
<ul>
|
||
<li>choix d'un autre mécanisme de mutex lorsque le mécanisme par
|
||
défaut sélectionné par <a class="glossarylink" href="../glossary.html#apr" title="voir glossaire">APR</a> présente un
|
||
problème de fonctionnement ou de performances.</li>
|
||
|
||
<li>choix d'un autre répertoire utilisé par les mutex à base de
|
||
fichier lorsque le répertoire par défaut ne supporte pas le
|
||
verrouillage</li>
|
||
</ul>
|
||
|
||
<div class="note"><h3>Modules supportés</h3>
|
||
<p>Cette directive ne configure que les mutex qui ont été
|
||
enregistrés avec le serveur de base via l'API
|
||
<code>ap_mutex_register()</code>. Tous les modules fournis avec
|
||
httpd supportent la directive <code class="directive">Mutex</code>, mais il
|
||
n'en sera pas forcément de même pour les modules tiers.
|
||
Reportez-vous à la documentation du module tiers considéré afin de
|
||
déterminer le(s) nom(s) de mutex qui pourront être définis si la
|
||
directive est supportée.</p>
|
||
</div>
|
||
|
||
|
||
|
||
<p>Les <em>mécanismes</em> de mutex disponibles sont les suivants :</p>
|
||
<ul>
|
||
<li><code>default | yes</code>
|
||
<p>C'est l'implémentation du verrouillage par défaut, telle
|
||
qu'elle est définie par <a class="glossarylink" href="../glossary.html#apr" title="voir glossaire">APR</a>. On peut
|
||
afficher l'implémentation du verrouillage par défaut via la
|
||
commande <code class="program"><a href="../programs/httpd.html">httpd</a></code> avec l'option <code>-V</code>.</p></li>
|
||
|
||
<li><code>none | no</code>
|
||
<p>Le mutex est désactivé, et cette valeur n'est permise pour un
|
||
mutex que si le module indique qu'il s'agit d'un choix valide.
|
||
Consultez la documentation du module pour plus d'informations.</p></li>
|
||
|
||
<li><code>posixsem</code>
|
||
<p>Une variante de mutex basée sur un sémaphore Posix.</p>
|
||
|
||
<div class="warning"><h3>Avertissement</h3>
|
||
<p>La propriété du sémaphore n'est pas restituée si un thread du
|
||
processus gérant le mutex provoque une erreur de segmentation,
|
||
ce qui provoquera un blocage du serveur web.</p>
|
||
</div>
|
||
</li>
|
||
|
||
<li><code>sysvsem</code>
|
||
<p>Une variante de mutex basée sur un sémaphore IPC SystemV.</p>
|
||
|
||
<div class="warning"><h3>Avertissement</h3>
|
||
<p>Il peut arriver que les sémaphores SysV soient conservés si le
|
||
processus se crashe avant que le sémaphore ne soit supprimé.</p>
|
||
</div>
|
||
|
||
<div class="warning"><h3>Sécurité</h3>
|
||
<p>L'API des sémaphores permet les attaques par déni de service
|
||
par tout programme CGI s'exécutant sous le même uid que le
|
||
serveur web (autrement dit tous les programmes CGI, à moins que
|
||
vous n'utilisiez un programme du style <code class="program"><a href="../programs/suexec.html">suexec</a></code>
|
||
ou <code>cgiwrapper</code>).</p>
|
||
</div>
|
||
</li>
|
||
|
||
<li><code>sem</code>
|
||
<p>Sélection de la "meilleure" implémentation des sémaphores
|
||
disponible ; le choix s'effectue entre les sémaphores posix et
|
||
IPC SystemV, dans cet ordre.</p></li>
|
||
|
||
<li><code>pthread</code>
|
||
<p>Une variante de mutex à base de mutex de thread Posix
|
||
inter-processus.</p>
|
||
|
||
<div class="warning"><h3>Avertissement</h3>
|
||
<p>Sur la plupart des systèmes, si un processus enfant se
|
||
termine anormalement alors qu'il détenait un mutex qui utilise
|
||
cette implémentation, le serveur va se bloquer et cesser de
|
||
répondre aux requêtes. Dans ce cas, un redémarrage manuel est
|
||
nécessaire pour récupérer le mutex.</p>
|
||
<p>Solaris et Linux constituent des exceptions notables, en ceci qu'ils fournissent
|
||
un mécanisme qui permet en général de récupérer le mutex après
|
||
l'arrêt anormal d'un processus enfant qui détenait le mutex.</p>
|
||
<p>Si votre système est compatible POSIX ou implémente la fonction
|
||
<code>pthread_mutexattr_setrobust_np()</code>, vous devriez
|
||
pouvoir utiliser l'option <code>pthread</code> sans problème.</p>
|
||
</div>
|
||
</li>
|
||
|
||
<li><code>fcntl:/chemin/vers/mutex</code>
|
||
<p>Une variante de mutex utilisant un fichier verrou physique et
|
||
la fonction <code>fcntl()</code>.</p>
|
||
|
||
<div class="warning"><h3>Avertissement</h3>
|
||
<p>Lorsqu'on utilise plusieurs mutex basés sur ce mécanisme dans
|
||
un environnement multi-processus, multi-thread, des erreurs de
|
||
blocage (EDEADLK) peuvent être rapportées pour des opérations de
|
||
mutex valides si la fonction <code>fcntl()</code> ne gère pas
|
||
les threads, comme sous Solaris.</p>
|
||
</div>
|
||
</li>
|
||
|
||
<li><code>flock:/chemin/vers/mutex</code>
|
||
<p>Méthode similaire à <code>fcntl:/chemin/vers/mutex</code>,
|
||
mais c'est la fonction <code>flock()</code> qui est utilisée
|
||
pour gérer le verrouillage par fichier.</p></li>
|
||
|
||
<li><code>file:/chemin/vers/mutex</code>
|
||
<p>Sélection de la "meilleure" implémentation de verrouillage
|
||
par fichier disponible ; le choix s'effectue entre
|
||
<code>fcntl</code> et <code>flock</code>, dans cet ordre.</p></li>
|
||
</ul>
|
||
|
||
<p>La plupart des mécanismes ne sont disponibles que sur les
|
||
plate-formes où ces dernières et <a class="glossarylink" href="../glossary.html#apr" title="voir glossaire">APR</a> les
|
||
supportent. Les mécanismes qui ne sont pas disponibles sur toutes
|
||
les plate-formes sont <em>posixsem</em>,
|
||
<em>sysvsem</em>, <em>sem</em>, <em>pthread</em>, <em>fcntl</em>,
|
||
<em>flock</em>, et <em>file</em>.</p>
|
||
|
||
<p>Avec les mécanismes à base de fichier <em>fcntl</em> et
|
||
<em>flock</em>, le chemin, s'il est fourni, est un répertoire dans
|
||
lequel le fichier verrou sera créé. Le répertoire par
|
||
défaut est le répertoire d'exécution de httpd relatif à la
|
||
directive <code class="directive"><a href="#serverroot">ServerRoot</a></code>.
|
||
Utilisez toujours un système
|
||
de fichiers local sur disque pour <code>/chemin/vers/mutex</code> et
|
||
jamais un répertoire se trouvant dans un système de fichiers NFS ou
|
||
AFS. Le nom de base du fichier se composera du type de mutex, d'une
|
||
chaîne optionnelle correspondant à l'instance et fournie par le
|
||
module ; et, sauf si le mot-clé <code>OmitPID</code> a été spécifié,
|
||
l'identificateur du processus parent httpd sera ajouté afin de
|
||
rendre le nom du fichier unique, évitant ainsi tout conflit lorsque
|
||
plusieurs instances d'httpd partagent le même répertoire de
|
||
verrouillage. Par exemple, si le nom de mutex est
|
||
<code>mpm-accept</code>, et si le répertoire de verrouillage est
|
||
<code>/var/httpd/locks</code>, le nom du fichier verrou pour
|
||
l'instance httpd dont le processus parent a pour identifiant 12345
|
||
sera <code>/var/httpd/locks/mpm-accept.12345</code>.</p>
|
||
|
||
<div class="warning"><h3>Sécurité</h3>
|
||
<p>Il est conseillé d'<em>éviter</em> de placer les fichiers mutex
|
||
dans un répertoire où tout le monde peut écrire comme
|
||
<code>/var/tmp</code>, car quelqu'un pourrait initier une attaque
|
||
par déni de service et empêcher le serveur de démarrer en créant un
|
||
fichier verrou possédant un nom identique à celui que le serveur va
|
||
tenter de créer.</p>
|
||
</div>
|
||
|
||
<p>La table suivante décrit les noms de mutex utilisés par httpd et
|
||
ses modules associés.</p>
|
||
|
||
<table class="bordered"><tr class="header">
|
||
<th>Nom mutex</th>
|
||
<th>Module(s)</th>
|
||
<th>Ressource protégée</th>
|
||
</tr>
|
||
<tr>
|
||
<td><code>mpm-accept</code></td>
|
||
<td>modules MPM <code class="module"><a href="../mod/prefork.html">prefork</a></code> et <code class="module"><a href="../mod/worker.html">worker</a></code></td>
|
||
<td>connexions entrantes, afin d'éviter le problème de
|
||
l'afflux de requêtes ; pour plus d'informations, voir la
|
||
documentation <a href="../misc/perf-tuning.html">Amélioration des
|
||
performances</a></td>
|
||
</tr>
|
||
<tr class="odd">
|
||
<td><code>authdigest-client</code></td>
|
||
<td><code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code></td>
|
||
<td>liste de clients en mémoire partagée</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>authdigest-opaque</code></td>
|
||
<td><code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code></td>
|
||
<td>compteur en mémoire partagée</td>
|
||
</tr>
|
||
<tr class="odd">
|
||
<td><code>ldap-cache</code></td>
|
||
<td><code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code></td>
|
||
<td>cache de résultat de recherche LDAP</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>rewrite-map</code></td>
|
||
<td><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code></td>
|
||
<td>communication avec des programmes externes
|
||
d'associations de valeurs, afin d'éviter les interférences
|
||
d'entrées/sorties entre plusieurs requêtes</td>
|
||
</tr>
|
||
<tr class="odd">
|
||
<td><code>ssl-cache</code></td>
|
||
<td><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code></td>
|
||
<td>cache de session SSL</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>ssl-stapling</code></td>
|
||
<td><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code></td>
|
||
<td>cache de l'étiquetage OCSP ("OCSP stapling")</td>
|
||
</tr>
|
||
<tr class="odd">
|
||
<td><code>watchdog-callback</code></td>
|
||
<td><code class="module"><a href="../mod/mod_watchdog.html">mod_watchdog</a></code></td>
|
||
<td>fonction de rappel d'un module client particulier</td>
|
||
</tr>
|
||
</table>
|
||
|
||
<p>Le mot-clé <code>OmitPID</code> permet d'empêcher l'addition de
|
||
l'identifiant du processus httpd parent au nom du fichier verrou.</p>
|
||
|
||
|
||
<p>Dans l'exemple suivant, le mécanisme de mutex pour le mutex
|
||
mpm-accept est modifié pour passer du mécanisme par défaut au
|
||
mécanisme <code>fcntl</code>, avec le fichier verrou associé créé
|
||
dans le répertoire <code>/var/httpd/locks</code>. Le mécanisme de
|
||
mutex par défaut pour tous les autres mutex deviendra
|
||
<code>sysvsem</code>.</p>
|
||
|
||
<pre class="prettyprint lang-config">Mutex sysvsem default
|
||
Mutex fcntl:/var/httpd/locks mpm-accept</pre>
|
||
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="namevirtualhost" id="namevirtualhost">Directive</a> <a name="NameVirtualHost" id="NameVirtualHost">NameVirtualHost</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>OBSOLETE : Définit une adresse IP pour les serveurs virtuels à base de
|
||
nom</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>NameVirtualHost <var>adresse</var>[:<var>port</var>]</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
|
||
<p>Avant la version 2.3.11, il était nécessaire de définir une
|
||
directive <code class="directive">NameVirtualHost</code> pour indiquer au
|
||
serveur qu'une paire adresse IP/port particulière pouvait être
|
||
utilisée comme serveur virtuel à base de nom. Depuis la version
|
||
2.3.11, chaque fois qu'une paire adresse IP/port est utilisée dans
|
||
plusieurs serveurs virtuels, l'hébergement virtuel à base de nom est
|
||
automatiquement activé pour cette adresse.</p>
|
||
|
||
<p>Cette directive n'a actuellement plus aucun effet.</p>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><a href="../vhosts/">Documentation sur les serveurs
|
||
virtuels</a></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="options" id="options">Directive</a> <a name="Options" id="Options">Options</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit les fonctionnalités disponibles pour un répertoire
|
||
particulier</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Options
|
||
[+|-]<var>option</var> [[+|-]<var>option</var>] ...</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>Options FollowSymlinks</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>Options</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Avec la version 2.3.11, la valeur par défaut passe de All
|
||
à FollowSymlinks</td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">Options</code> permet de définir
|
||
les fonctionnalités de serveur disponibles pour un répertoire
|
||
particulier.</p>
|
||
|
||
<p><var>option</var> peut être défini à <code>None</code>, auquel
|
||
cas aucune fonctionnalité spécifique n'est activée, ou comprendre
|
||
une ou plusieurs des options suivantes :</p>
|
||
|
||
<dl>
|
||
<dt><code>All</code></dt>
|
||
|
||
<dd>Toutes les options excepté <code>MultiViews</code>.</dd>
|
||
|
||
<dt><code>ExecCGI</code></dt>
|
||
|
||
<dd>L'exécution de scripts CGI à l'aide du module
|
||
<code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code> est permise.</dd>
|
||
|
||
<dt><code>FollowSymLinks</code></dt>
|
||
|
||
<dd>
|
||
|
||
Le serveur va suivre les liens symboliques dans le répertoire
|
||
concerné. Il s'agit de la valeur par défaut.
|
||
<div class="note">
|
||
<p>Bien que le serveur suive les liens symboliques, il ne modifie
|
||
<em>pas</em> le nom de chemin concerné défini par la section
|
||
<code class="directive"><a href="#directory"><Directory></a></code>.</p>
|
||
|
||
<p>Les options <code>FollowSymLinks</code> et
|
||
<code>SymLinksIfOwnerMatch</code> ne fonctionnent que dans les
|
||
sections <code class="directive"><a href="#directory"><Directory></a></code> ou les fichiers
|
||
<code>.htaccess</code>.</p>
|
||
|
||
<p>Le fait d'omettre cette option ne doit pas être considéré comme
|
||
une mesure de sécurité efficace, car il existe toujours une
|
||
situation de compétition (race condition) entre l'instant où l'on
|
||
vérifie qu'un chemin n'est pas un lien symbolique, et l'instant où
|
||
l'on utilise effectivement ce chemin.</p>
|
||
</div></dd>
|
||
|
||
<dt><code>Includes</code></dt>
|
||
|
||
<dd>
|
||
Les inclusions côté serveur (SSI) à l'aide du module
|
||
<code class="module"><a href="../mod/mod_include.html">mod_include</a></code> sont autorisées.</dd>
|
||
|
||
<dt><code>IncludesNOEXEC</code></dt>
|
||
|
||
<dd>
|
||
|
||
Les inclusions côté serveur (SSI) sont permises, mais <code>#exec
|
||
cmd</code> et <code>#exec cgi</code> sont désactivés.
|
||
L'utilisation de <code>#include virtual</code> pour les scripts
|
||
CGI est cependant toujours possible depuis des répertoires
|
||
définis par <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>.</dd>
|
||
|
||
<dt><code>Indexes</code></dt>
|
||
|
||
<dd>
|
||
Si une URL requise correspond au répertoire concerné, et si aucun
|
||
<code class="directive"><a href="../mod/mod_dir.html#directoryindex">DirectoryIndex</a></code> (<em>par
|
||
exemple</em> <code>index.html</code>) n'est défini pour ce
|
||
répertoire, le module <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> va renvoyer
|
||
un listing formaté du répertoire.</dd>
|
||
|
||
<dt><code>MultiViews</code></dt>
|
||
|
||
<dd>
|
||
Les vues multiples ("multiviews") à <a href="../content-negotiation.html">contenu négocié</a> à l'aide du
|
||
module <code class="module"><a href="../mod/mod_negotiation.html">mod_negotiation</a></code> sont autorisées.
|
||
<div class="note"><h3>Note</h3> <p>Cette option est ignorée si elle est
|
||
définie en tout autre endroit qu'une section <code class="directive"><a href="#directory"><Directory></a></code>, car
|
||
<code class="module"><a href="../mod/mod_negotiation.html">mod_negotiation</a></code> a besoin de ressources réelles
|
||
pour effectuer ses comparaisons et ses évaluations.</p></div>
|
||
|
||
</dd>
|
||
|
||
<dt><code>SymLinksIfOwnerMatch</code></dt>
|
||
|
||
<dd>Le serveur ne suivra que les liens symboliques qui renvoient
|
||
vers un fichier ou un répertoire dont le propriétaire est le même
|
||
que celui du lien.
|
||
|
||
<div class="note"><h3>Note</h3>
|
||
<p>Les options <code>FollowSymLinks</code> et
|
||
<code>SymLinksIfOwnerMatch</code> ne fonctionnent que dans les
|
||
sections <code class="directive"><a href="#directory"><Directory></a></code> ou les fichiers
|
||
<code>.htaccess</code>.</p>
|
||
|
||
<p>Le fait d'omettre cette option ne doit pas être considéré comme
|
||
une mesure de sécurité efficace, car il existe toujours une
|
||
situation de compétition (race condition) entre l'instant où l'on
|
||
vérifie qu'un chemin n'est pas un lien symbolique, et l'instant où
|
||
l'on utilise effectivement ce chemin.</p>
|
||
</div> </dd>
|
||
</dl>
|
||
|
||
<p>Normalement, si plusieurs directives
|
||
<code class="directive">Options</code> peuvent s'appliquer à un répertoire,
|
||
c'est la plus spécifique qui est utilisée et les autres sont
|
||
ignorées ; les options ne sont pas fusionnées (voir <a href="../sections.html#merging">comment les sections sont
|
||
fusionnées</a>). Elles le sont cependant si <em>toutes</em> les
|
||
options de la directive <code class="directive">Options</code> sont
|
||
précédées d'un symbole <code>+</code> ou <code>-</code>. Toute
|
||
option précédée d'un <code>+</code> est ajoutée à la liste des
|
||
options courantes de manière forcée et toute option précédée d'un
|
||
<code>-</code> est supprimée de la liste des options courantes de la
|
||
même manière.</p>
|
||
|
||
<div class="note"><h3>Note</h3>
|
||
<p>Mélanger des <code class="directive">Options</code> avec <code>+</code>
|
||
ou <code>-</code> avec des <code class="directive">Options</code> sans
|
||
<code>+</code> ou <code>-</code> constitue une erreur de syntaxe, et
|
||
la vérification de la syntaxe au cours du démarrage du serveur fera
|
||
échouer ce dernier.</p>
|
||
</div>
|
||
|
||
<p>Par exemple, sans aucun symbole <code>+</code> et <code>-</code>
|
||
:</p>
|
||
|
||
<pre class="prettyprint lang-config"><Directory "/web/docs">
|
||
Options Indexes FollowSymLinks
|
||
</Directory>
|
||
|
||
<Directory "/web/docs/spec">
|
||
Options Includes
|
||
</Directory></pre>
|
||
|
||
|
||
<p>ici, seule l'option <code>Includes</code> sera prise en compte
|
||
pour le répertoire <code>/web/docs/spec</code>. Par contre, si la
|
||
seconde directive <code class="directive">Options</code> utilise les
|
||
symboles <code>+</code> et <code>-</code> :</p>
|
||
|
||
<pre class="prettyprint lang-config"><Directory "/web/docs">
|
||
Options Indexes FollowSymLinks
|
||
</Directory>
|
||
|
||
<Directory "/web/docs/spec">
|
||
Options +Includes -Indexes
|
||
</Directory></pre>
|
||
|
||
|
||
<p>alors, les options <code>FollowSymLinks</code> et
|
||
<code>Includes</code> seront prises en compte pour le répertoire
|
||
<code>/web/docs/spec</code>.</p>
|
||
|
||
<div class="note"><h3>Note</h3>
|
||
<p>L'utilisation de <code>-IncludesNOEXEC</code> ou
|
||
<code>-Includes</code> désactive complètement les inclusions côté
|
||
serveur sans tenir compte des définitions précédentes.</p>
|
||
</div>
|
||
|
||
<p>En l'absence de toute définition d'options, la valeur par défaut
|
||
est <code>FollowSymlinks</code>.</p>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="protocol" id="protocol">Directive</a> <a name="Protocol" id="Protocol">Protocol</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Protocole pour une socket d'écoute</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Protocol <var>protocole</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.1.5 d'Apache, mais
|
||
seulement depuis la version 2.3.3 sous Windows.</td></tr>
|
||
</table>
|
||
<p>Cette directive permet de spécifier le protocole utilisé pour une
|
||
socket d'écoute particulière. Le protocole sert à déterminer quel
|
||
module doit traiter une requête, et d'appliquer les optimisations
|
||
spécifiques au protocole via la directive
|
||
<code class="directive">AcceptFilter</code>.</p>
|
||
|
||
<p>Dans la plupart des configurations, cette directive n'est pas nécessaire.
|
||
Si elle n'est pas définie, le protocole par défaut pour le port 443 est
|
||
<code>https</code> et <code>http</code> pour tous les autres ports. La
|
||
connaissance du protocole permet de déterminer quel module doit traiter la
|
||
requête, et d'appliquer les optimisations spécifiques au protocole via la
|
||
directive <code class="directive"><a href="#acceptfilter">AcceptFilter</a></code>.</p>
|
||
|
||
<p>Par exemple, si vous travaillez avec le protocole
|
||
<code>https</code> sur un port non standard, spécifiez le protocole
|
||
de manière explicite :</p>
|
||
|
||
<pre class="prettyprint lang-config">Protocol https</pre>
|
||
|
||
|
||
<p>Vous pouvez aussi spécifier le protocole via la directive
|
||
<code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code>.</p>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#acceptfilter">AcceptFilter</a></code></li>
|
||
<li><code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="protocols" id="protocols">Directive</a> <a name="Protocols" id="Protocols">Protocols</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Protocoles disponibles pour un serveur virtuel ou non</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Protocols <var>protocole</var> ...</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>Protocols http/1.1</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.17 du serveur
|
||
HTTP Apache.</td></tr>
|
||
</table>
|
||
<p>Cette directive permet de spécifier la liste des protocoles
|
||
supportés par un serveur virtuel ou non. Cette liste énumère les
|
||
protocoles qu'un client sera autorisé à négocier avec ce
|
||
serveur.</p>
|
||
|
||
<p>Par défaut,
|
||
seul le protocole http/1.1 est disponible (compatible avec les
|
||
clients http/1.0 et http/0.9). Par conséquent, vous devez
|
||
fournir cette liste si vous voulez étendre les protocoles
|
||
disponibles pour le serveur.</p>
|
||
|
||
<p>Par exemple, si vous voulez autoriser le protocole
|
||
HTTP/2 pour un serveur avec TLS, utilisez
|
||
cette directive comme suit :</p>
|
||
|
||
<pre class="prettyprint lang-config">Protocols h2 http/1.1</pre>
|
||
|
||
|
||
<p>Les protocoles valides sont <code>http/1.1</code> pour les
|
||
connexions http et https, <code>h2</code> pour les connections
|
||
https et <code>h2c</code> pour les connexions http. D'autres
|
||
modules peuvent fournir d'autres protocoles.</p>
|
||
|
||
<p>Spécifier des protocoles non disponibles ou désactivés n'aura
|
||
aucun effet, et ceux-ci seront simplement ignorés.</p>
|
||
|
||
<p>Si un serveur virtuel ne possède pas de directive Protocols
|
||
propre, il hérite des protocoles spécifiés pour le serveur
|
||
principal. Autrement dit, les directives Protocols définies au
|
||
niveau d'un serveur virtuel remplacent celles définies au niveau
|
||
du serveur principal.
|
||
</p>
|
||
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#protocolshonororder">ProtocolsHonorOrder</a></code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="protocolshonororder" id="protocolshonororder">Directive</a> <a name="ProtocolsHonorOrder" id="ProtocolsHonorOrder">ProtocolsHonorOrder</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine qui du client ou du serveur détermine l'ordre
|
||
des protocoles au cours de la négociation de la connexion</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProtocolsHonorOrder On|Off</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProtocolsHonorOrder On</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.17 du serveur
|
||
HTTP Apache.</td></tr>
|
||
</table>
|
||
<p>Cette directive permet de définir si le serveur doit tenir
|
||
compte de l'ordre des protocoles définis par la directive
|
||
<code class="directive">Protocols</code>.</p>
|
||
|
||
<p>Si cette directive est définie à Off, l'ordre de la liste des
|
||
protocoles fournie par le client l'emporte sur l'ordre défini
|
||
dans la configuration du serveur.</p>
|
||
|
||
<p>Si la directive <code class="directive">ProtocolsHonorOrder</code>
|
||
est définie à <code>on</code> (valeur par défaut),
|
||
il n'est pas tenu compte de l'ordre de la liste des protocoles
|
||
fournie par le client, et seul l'ordre de la liste des protocles
|
||
définie au niveau du serveur influera la
|
||
négociation du protocole.</p>
|
||
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#protocols">Protocols</a></code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="qualifyredirecturl" id="qualifyredirecturl">Directive</a> <a name="QualifyRedirectURL" id="QualifyRedirectURL">QualifyRedirectURL</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Vérifie si la variable d'environnement REDIRECT_URL est
|
||
pleinement qualifiée</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>QualifyRedirectURL On|Off</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>QualifyRedirectURL Off</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>FileInfo</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Directive supportée à partir de la version 2.4.18 du
|
||
serveur HTTP Apache. Jusqu'à la version 2.4.17, le serveur se comportait
|
||
comme si la directive QualifyRedirectURL était définie à On.</td></tr>
|
||
</table>
|
||
<p>Cette directive permet de s'assurer que le serveur vérifiera que
|
||
la variable d'environnement REDIRECT_URL est bien pleinement
|
||
qualifiée. Par défaut, cette variable contient l'URL textuellement
|
||
demandée par le client, par exemple "/index.html". Avec
|
||
<code class="directive">QualifyRedirectURL ON</code>, la même requête
|
||
affectera à la variable REDIRECT_URL une valeur du style
|
||
"http://www.example.com/index.html".</p>
|
||
<p>Même si cette directive n'est pas définie, lorsqu'une requête est
|
||
soumise avec une URL pleinement qualifiée, la variable REDIRECT_URL
|
||
contiendra quand-même une URL pleinement qualifiée.
|
||
</p>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="readbuffersize" id="readbuffersize">Directive</a> <a name="ReadBufferSize" id="ReadBufferSize">ReadBufferSize</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille des tampons utilisés pour lire les données</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ReadBufferSize <var>bytes</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ReadBufferSize 8192</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.5 du serveur HTTP
|
||
Apache.</td></tr>
|
||
</table>
|
||
<p>Cette directive permet de définir la taille (en octets) du tampon mémoire
|
||
utilisé pour lire des données depuis le réseau ou un fichier.</p>
|
||
|
||
<p>Un tampon de grande taille peut améliorer les performances pour les
|
||
grandes quantités de données, mais consomme d'avantage de mémoire par
|
||
connexion. La taille minimale du tampon est de <var>1024</var> octets.</p>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="regexdefaultoptions" id="regexdefaultoptions">Directive</a> <a name="RegexDefaultOptions" id="RegexDefaultOptions">RegexDefaultOptions</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configuration des options globales par défaut pour les
|
||
expressions rationnelles</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RegexDefaultOptions [none] [+|-]<var>option</var> [[+|-]<var>option</var>] ...</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>RegexDefaultOptions DOTALL DOLLAR_ENDONLY</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.30 du serveur HTTP
|
||
Apache.</td></tr>
|
||
</table>
|
||
<p>Cette directive permet d'ajouter certains comportements par défaut à
|
||
TOUTES les expressions rationnelles utilisées ultérieurement.</p>
|
||
|
||
<p>Toute option précédée d'un '+' est ajoutée aux options déjà définies.<br />
|
||
Toute option précédée d'un '-' est enlevée des options déjà définies.<br />
|
||
Toute option non suffixée par '+' ou '-' sera définie et remplacera
|
||
l'option correspondante éventuellement déjà définie.<br />
|
||
Le mot-clé <code>none</code> annule toutes les options déjà définies.</p>
|
||
|
||
<p><var>option</var> peut être :</p>
|
||
<dl>
|
||
<dt><code>ICASE</code></dt>
|
||
<dd>Utilise une recherche de correspondance insensible à la casse.</dd>
|
||
|
||
<dt><code>EXTENDED</code></dt>
|
||
<dd>Le drapeau Perl /x ; ignore les espaces non échappés et les
|
||
commentaires dans le modèle.</dd>
|
||
|
||
<dt><code>DOTALL</code></dt>
|
||
<dd>Le drapeau Perl /s ; '.' correspond aux caractères nouvelle
|
||
ligne.</dd>
|
||
|
||
<dt><code>DOLLAR_ENDONLY</code></dt>
|
||
<dd>'$' n'est actif qu'à la fin de la chaîne de référence.</dd>
|
||
|
||
</dl>
|
||
<pre class="prettyprint lang-config"># Ajoute l'option ICASE par défaut pour toutes les expressions rationnelles
|
||
RegexDefaultOptions +ICASE
|
||
...
|
||
# Supprime l'option DOLLAR_ENDONLY par défaut et conserve toutes les autres
|
||
# options
|
||
RegexDefaultOptions -DOLLAR_ENDONLY
|
||
...
|
||
# Définit l'option DOTALL seule et annule toutes les autres options
|
||
RegexDefaultOptions DOTALL
|
||
...
|
||
# Annule toutes les options définies
|
||
RegexDefaultOptions none
|
||
...</pre>
|
||
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="registerhttpmethod" id="registerhttpmethod">Directive</a> <a name="RegisterHttpMethod" id="RegisterHttpMethod">RegisterHttpMethod</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enregistrement de méthodes HTTP non standards</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RegisterHttpMethod <var>méthode</var> [<var>méthode</var> [...]]</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.24 du serveur HTTP Apache</td></tr>
|
||
</table>
|
||
<p>Cette directive permet d'enregistrer des méthodes HTTP supplémentaires. Ceci
|
||
s'avérera nécessaire si l'on doit utiliser des méthodes non standards avec des
|
||
directives qui acceptent des noms de méthodes en paramètres, ou pour permettre
|
||
l'utilisation de méthodes particulières non standards en passant par un serveur
|
||
mandataire ou au sein de scripts CGI, et ceci alors que le serveur a été
|
||
configuré pour ne transmettre que des méthodes reconnues aux modules.</p>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#httpprotocoloptions">HTTPProtocolOptions</a></code></li>
|
||
<li><code class="directive"><a href="../mod/mod_allowmethods.html#allowmethods">AllowMethods</a></code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="rlimitcpu" id="rlimitcpu">Directive</a> <a name="RLimitCPU" id="RLimitCPU">RLimitCPU</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Limite le temps CPU alloué aux processus initiés par les
|
||
processus enfants d'Apache httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RLimitCPU <var>secondes</var>|max [<var>secondes</var>|max]</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>Non défini ; utilise les valeurs par défaut du système
|
||
d'exploitation</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>All</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Prend 1 ou 2 paramètres. Le premier definit la limite de
|
||
consommation de ressources pour tous les processus, et le second la
|
||
consommation de ressources maximale. Les deux paramètres peuvent
|
||
contenir soit un nombre, soit <code>max</code> pour indiquer au
|
||
serveur que la limite de consommation correspond à la valeur
|
||
maximale autorisée par la configuration du système d'exploitation.
|
||
Pour augmenter la consommation maximale de ressources, le serveur
|
||
doit s'exécuter en tant que <code>root</code>, ou se trouver dans sa
|
||
phase de démarrage.</p>
|
||
|
||
<p>Cette directive s'applique aux processus initiés par les
|
||
processus enfants d'Apache httpd qui traitent les requêtes, et non aux
|
||
processus enfants eux-mêmes. Sont concernés les scripts CGI et les
|
||
commandes exec des SSI, mais en aucun cas les processus initiés par
|
||
le processus parent d'Apache httpd comme les journalisations redirigées
|
||
vers un programme.</p>
|
||
|
||
<p>Les limites de ressources CPU sont exprimées en secondes par
|
||
processus.</p>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#rlimitmem">RLimitMEM</a></code></li>
|
||
<li><code class="directive"><a href="#rlimitnproc">RLimitNPROC</a></code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="rlimitmem" id="rlimitmem">Directive</a> <a name="RLimitMEM" id="RLimitMEM">RLimitMEM</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Limite la mémoire allouée aux processus initiés par les
|
||
processus enfants d'Apache httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RLimitMEM <var>octets</var>|max [<var>octets</var>|max]</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>Non défini ; utilise les valeurs par défaut du système
|
||
d'exploitation</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>All</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Prend 1 ou 2 paramètres. Le premier definit la limite de
|
||
consommation de ressources pour tous les processus, et le second la
|
||
consommation de ressources maximale. Les deux paramètres peuvent
|
||
contenir soit un nombre, soit <code>max</code> pour indiquer au
|
||
serveur que la limite de consommation correspond à la valeur
|
||
maximale autorisée par la configuration du système d'exploitation.
|
||
Pour augmenter la consommation maximale de ressources, le serveur
|
||
doit s'exécuter en tant que <code>root</code>, ou se trouver dans sa
|
||
phase de démarrage.</p>
|
||
|
||
<p>Cette directive s'applique aux processus initiés par les
|
||
processus enfants d'Apache httpd qui traitent les requêtes, et non aux
|
||
processus enfants eux-mêmes. Sont concernés les scripts CGI et les
|
||
commandes exec des SSI, mais en aucun cas les processus initiés par
|
||
le processus parent d'Apache httpd comme les journalisations redirigées
|
||
vers un programme.</p>
|
||
|
||
<p>Les limites de ressources mémoire sont exprimées en octets par
|
||
processus.</p>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#rlimitcpu">RLimitCPU</a></code></li>
|
||
<li><code class="directive"><a href="#rlimitnproc">RLimitNPROC</a></code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="rlimitnproc" id="rlimitnproc">Directive</a> <a name="RLimitNPROC" id="RLimitNPROC">RLimitNPROC</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Limite le nombre de processus qui peuvent être initiés par
|
||
les processus initiés par les processus enfants d'Apache httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RLimitNPROC <var>nombre</var>|max [<var>nombre</var>|max]</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>Unset; uses operating system defaults</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>All</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Prend 1 ou 2 paramètres. Le premier definit la limite de
|
||
consommation de ressources pour tous les processus, et le second la
|
||
consommation de ressources maximale. Les deux paramètres peuvent
|
||
contenir soit un nombre, soit <code>max</code> pour indiquer au
|
||
serveur que la limite de consommation correspond à la valeur
|
||
maximale autorisée par la configuration du système d'exploitation.
|
||
Pour augmenter la consommation maximale de ressources, le serveur
|
||
doit s'exécuter en tant que <code>root</code>, ou se trouver dans sa
|
||
phase de démarrage.</p>
|
||
|
||
<p>Cette directive s'applique aux processus initiés par les
|
||
processus enfants d'Apache httpd qui traitent les requêtes, et non aux
|
||
processus enfants eux-mêmes. Sont concernés les scripts CGI et les
|
||
commandes exec des SSI, mais en aucun cas les processus initiés par
|
||
le processus parent d'Apache httpd comme les journalisations redirigées
|
||
vers un programme.</p>
|
||
|
||
<p>Les limites des processus contrôlent le nombre de processus par
|
||
utilisateur.</p>
|
||
|
||
<div class="note"><h3>Note</h3>
|
||
<p>Si les processus CGI s'exécutent sous le même
|
||
utilisateur que celui du serveur web, cette
|
||
directive va limiter le nombre de processus que le serveur
|
||
pourra lui-même créer. La présence de messages
|
||
<strong><code>cannot fork</code></strong> dans le journal des
|
||
erreurs indiquera que la limite est atteinte.</p>
|
||
</div>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#rlimitmem">RLimitMEM</a></code></li>
|
||
<li><code class="directive"><a href="#rlimitcpu">RLimitCPU</a></code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="scriptinterpretersource" id="scriptinterpretersource">Directive</a> <a name="ScriptInterpreterSource" id="ScriptInterpreterSource">ScriptInterpreterSource</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Permet de localiser l'interpréteur des scripts
|
||
CGI</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ScriptInterpreterSource Registry|Registry-Strict|Script</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ScriptInterpreterSource Script</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>FileInfo</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Win32 seulement.</td></tr>
|
||
</table>
|
||
<p>Cette directive permet de contrôler la méthode qu'utilise Apache
|
||
httpd pour trouver l'interpréteur destiné à exécuter les scripts CGI. La
|
||
définition par défaut est <code>Script</code> : ceci indique à
|
||
Apache httpd qu'il doit utiliser l'interpréteur précisé dans la ligne
|
||
shebang du script (la première ligne, commençant par
|
||
<code>#!</code>). Sur les systèmes Win32, cette ligne ressemble
|
||
souvent à ceci :</p>
|
||
|
||
<pre class="prettyprint lang-perl">#!C:/Perl/bin/perl.exe</pre>
|
||
|
||
|
||
<p>ou simplement, dans le cas où <code>perl</code> est dans le
|
||
<code>PATH</code> :</p>
|
||
|
||
<pre class="prettyprint lang-perl">#!perl</pre>
|
||
|
||
|
||
<p>Avec <code>ScriptInterpreterSource Registry</code>, Windows va
|
||
effectuer une recherche dans l'arborescence
|
||
<code>HKEY_CLASSES_ROOT</code> de la base de registre avec comme
|
||
mot-clé l'extension du fichier contenant le script (par exemple
|
||
<code>.pl</code>). C'est la commande définie par la sous-clé de
|
||
registre <code>Shell\ExecCGI\Command</code> ou, si elle n'existe
|
||
pas, la sous-clé <code>Shell\Open\Command</code> qui est utilisée
|
||
pour ouvrir le fichier du script. Si ces clés de registre ne sont
|
||
pas trouvées, Apache httpd utilise la méthode de l'option
|
||
<code>Script</code>.</p>
|
||
|
||
<div class="warning"><h3>Sécurité</h3>
|
||
<p>Soyez prudent si vous utilisez <code>ScriptInterpreterSource
|
||
Registry</code> avec des répertoires faisant l'objet d'un <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>, car Apache httpd va essayer
|
||
d'exécuter <strong>tous</strong> les fichiers contenus dans
|
||
celui-ci. L'option <code>Registry</code> peut causer des appels de
|
||
programmes non voulus sur des fichiers non destinés à être exécutés.
|
||
Par exemple, la commande par défaut open sur les fichiers
|
||
<code>.htm</code> sur la plupart des systèmes Windows va lancer
|
||
Microsoft Internet Explorer ; ainsi, toute requête HTTP pour un
|
||
fichier <code>.htm</code> situé dans le répertoire des scripts
|
||
va lancer le navigateur en arrière-plan sur le serveur, ce qui a
|
||
toutes les chances de crasher votre système dans les minutes qui
|
||
suivent.</p>
|
||
</div>
|
||
|
||
<p>L'option <code>Registry-Strict</code>
|
||
agit de manière identique à <code>Registry</code>, mais n'utilise
|
||
que la sous-clé <code>Shell\ExecCGI\Command</code>. La présence de
|
||
la clé <code>ExecCGI</code> n'étant pas systématique, Elle doit être
|
||
définie manuellement dans le registre Windows et évite ainsi tout
|
||
appel de programme accidentel sur votre système.</p>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="seerequesttail" id="seerequesttail">Directive</a> <a name="SeeRequestTail" id="SeeRequestTail">SeeRequestTail</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine si mod_status affiche les 63 premiers caractères
|
||
d'une requête ou les 63 derniers, en supposant que la requête
|
||
elle-même possède plus de 63 caractères.</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SeeRequestTail On|Off</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SeeRequestTail Off</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.2.7
|
||
d'Apache httpd.</td></tr>
|
||
</table>
|
||
<p>Avec <code>ExtendedStatus On</code>, <code class="module"><a href="../mod/mod_status.html">mod_status</a></code> affiche la
|
||
véritable requête en cours de traitement. Pour des raisons
|
||
historiques, seuls 63 caractères de la requête sont réellement
|
||
stockés à des fins d'affichage. Cette directive permet de déterminer
|
||
si ce sont les 63 premiers caractères qui seront stockés (c'est le
|
||
comportement par défaut),
|
||
ou si ce sont les 63 derniers. Ceci ne s'applique bien entendu que
|
||
si la taille de la requête est de 64 caractères ou plus.</p>
|
||
|
||
<p>Si Apache httpd traite la requête <code>GET /disque1/stockage/apache/htdocs/images/rep-images1/nourriture/pommes.jpg HTTP/1.1</code>
|
||
, l'affichage de la requête par <code class="module"><a href="../mod/mod_status.html">mod_status</a></code> se présentera comme suit :
|
||
</p>
|
||
|
||
<table class="bordered">
|
||
<tr>
|
||
<th>Off (défaut)</th>
|
||
<td>GET /disque1/stockage/apache/htdocs/images/rep-images1/nourritu</td>
|
||
</tr>
|
||
<tr>
|
||
<th>On</th>
|
||
<td>apache/htdocs/images/rep-images1/nourriture/pommes.jpg HTTP/1.1</td>
|
||
</tr>
|
||
</table>
|
||
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="serveradmin" id="serveradmin">Directive</a> <a name="ServerAdmin" id="ServerAdmin">ServerAdmin</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'adresse électronique que le serveur inclut dans les
|
||
messages d'erreur envoyés au client</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ServerAdmin <var>adresse électronique</var>|<var>URL</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">ServerAdmin</code> permet de définir
|
||
l'adresse de contact que le serveur va inclure dans tout message
|
||
d'erreur qu'il envoie au client. Si le programme <code>httpd</code>
|
||
ne reconnait pas l'argument fourni comme une URL, il suppose que
|
||
c'est une <var>adresse électronique</var>, et lui ajoute le préfixe
|
||
<code>mailto:</code> dans les cibles des hyperliens. Il est
|
||
cependant recommandé d'utiliser exclusivement une adresse
|
||
électronique, car de nombreux scripts CGI considèrent ceci comme
|
||
implicite. Si vous utilisez une URL, elle doit pointer vers un autre
|
||
serveur que vous contrôlez. Dans le cas contraire, les utilisateurs
|
||
seraient dans l'impossibilité de vous contacter en cas de problème.</p>
|
||
|
||
<p>Il peut s'avérer utile de définir une adresse dédiée à
|
||
l'administration du serveur, par exemple :</p>
|
||
|
||
<pre class="prettyprint lang-config">ServerAdmin www-admin@foo.example.com</pre>
|
||
|
||
<p>car les utilisateurs ne mentionnent pas systématiquement le
|
||
serveur dont ils parlent !</p>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="serveralias" id="serveralias">Directive</a> <a name="ServerAlias" id="ServerAlias">ServerAlias</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Autres noms d'un serveur utilisables pour atteindre des
|
||
serveurs virtuels à base de nom</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ServerAlias <var>nom serveur</var> [<var>nom serveur</var>]
|
||
...</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">ServerAlias</code> permet de définir
|
||
les noms alternatifs d'un serveur utilisables pour atteindre des <a href="../vhosts/name-based.html">serveurs virtuels à base de
|
||
nom</a>. La directive <code class="directive">ServerAlias</code> peut
|
||
contenir des caractères génériques, si nécessaire.</p>
|
||
|
||
<pre class="prettyprint lang-config"><VirtualHost *:80>
|
||
ServerName server.example.com
|
||
ServerAlias server server2.example.com server2
|
||
ServerAlias *.example.com
|
||
UseCanonicalName Off
|
||
# ...
|
||
</VirtualHost></pre>
|
||
|
||
<p>La recherche du serveur virtuel à base de nom correspondant au
|
||
plus près à la requête s'effectue selon l'ordre d'apparition des
|
||
directives <code class="directive"><a href="#virtualhost"><virtualhost></a></code> dans le fichier de
|
||
configuration. Le premier serveur virtuel dont le <code class="directive"><a href="#servername">ServerName</a></code> ou le <code class="directive"><a href="#serveralias">ServerAlias</a></code> correspond est choisi, sans
|
||
priorité particulière si le nom contient des caractères génériques
|
||
(que ce soit pour ServerName ou ServerAlias).</p>
|
||
|
||
<p>Tous les noms spécifiés au sein d'une section <code class="directive"><a href="#virtualhost"><VirtualHost></a></code> sont traités comme un
|
||
<code class="directive">ServerAlias</code> (sans caractères génériques).</p>
|
||
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#usecanonicalname">UseCanonicalName</a></code></li>
|
||
<li><a href="../vhosts/">Documentation sur les serveurs virtuels
|
||
du serveur HTTP Apache</a></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="servername" id="servername">Directive</a> <a name="ServerName" id="ServerName">ServerName</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nom d'hôte et port que le serveur utilise pour
|
||
s'authentifier lui-même</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ServerName
|
||
[<var>protocole</var>://]<var>nom-de-domaine</var>|<var>adresse-ip</var>[:<var>port</var>]</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">ServerName</code> permet de définir
|
||
les protocole, nom d'hôte et port d'une requête que le serveur
|
||
utilise pour s'authentifier lui-même.</p>
|
||
|
||
<p>La directive <code class="directive">ServerName</code> permet (éventuellement en
|
||
conjonction avec la directive <code class="directive"><a href="#serveralias">ServerAlias</a></code>) d'identifier de manière unique un
|
||
serveur virtuel, lorsqu'elle est utilisée dans un contexte de <a href="../vhosts/name-based.html">serveurs virtuels à base de noms</a>.</p>
|
||
|
||
<p>Cette directive est aussi utilisée lors de la création d'URLs de
|
||
redirection relatives quand la directive <code class="directive"><a href="#usecanonicalname">UseCanonicalName</a></code> est définie à une valeur autre
|
||
que la valeur par défaut.</p>
|
||
|
||
<p>Par exemple, si le nom de la
|
||
machine hébergeant le serveur web est
|
||
<code>simple.example.com</code>, la machine possède l'alias
|
||
DNS <code>www.example.com</code>, et si vous voulez que le serveur
|
||
web s'identifie avec cet alias, vous devez utilisez la définition
|
||
suivante :</p>
|
||
|
||
<pre class="prettyprint lang-config">ServerName www.example.com</pre>
|
||
|
||
|
||
<p>La directive <code class="directive">ServerName</code> peut apparaître à
|
||
toutes les étapes de la définition du serveur. Toute occurrence
|
||
annule cependant la précédente (pour ce serveur).</p>
|
||
|
||
<p>Si la directive <code class="directive">ServerName</code> n'est pas
|
||
définie, le serveur tente de déterminer le nom
|
||
d'hôte visible du point de vue du client en demandant tout d'abord au
|
||
système d'exploitation le nom d'hôte système, et en cas d'échec, en effectuant
|
||
une recherche DNS inverse sur une adresse IP présente sur le système.</p>
|
||
|
||
<p>Si la directive
|
||
<code class="directive">ServerName</code> ne précise pas de port, le serveur
|
||
utilisera celui de la requête entrante. Il est recommandé de
|
||
spécifier un nom d'hôte et un port spécifiques à l'aide de la
|
||
directive <code class="directive">ServerName</code> pour une fiabilité
|
||
optimale et à titre préventif.</p>
|
||
|
||
<p>Si vous définissez des <a href="../vhosts/name-based.html">serveurs virtuels à base de
|
||
nom</a>, une directive <code class="directive">ServerName</code> située à
|
||
l'intérieur d'une section <code class="directive"><a href="#virtualhost"><VirtualHost></a></code> spécifiera quel nom d'hôte
|
||
doit apparaître dans l'en-tête de requête <code>Host:</code> pour
|
||
pouvoir atteindre ce serveur virtuel.</p>
|
||
|
||
|
||
<p>Parfois, le serveur s'exécute en amont d'un dispositif qui
|
||
implémente SSL, comme un mandataire inverse, un répartiteur de
|
||
charge ou un boîtier dédié SSL. Dans ce cas, spécifiez le protocole
|
||
<code>https://</code> et le port auquel les clients se connectent
|
||
dans la directive <code class="directive">ServerName</code>, afin de
|
||
s'assurer que le serveur génère correctement ses URLs
|
||
d'auto-identification.
|
||
</p>
|
||
|
||
<p>Voir la description des directives <code class="directive"><a href="#usecanonicalname">UseCanonicalName</a></code> et <code class="directive"><a href="#usecanonicalphysicalport">UseCanonicalPhysicalPort</a></code> pour les
|
||
définitions qui permettent de déterminer si les URLs
|
||
auto-identifiantes (par exemple via le module
|
||
<code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code>) vont faire référence au port spécifié, ou
|
||
au port indiqué dans la requête du client.
|
||
</p>
|
||
|
||
<div class="warning">
|
||
<p>Si la valeur de la directive <code class="directive">ServerName</code> ne
|
||
peut pas être résolue en adresse IP, le démarrage du serveur
|
||
provoquera un avertissement. <code>httpd</code> va alors utiliser le
|
||
résultat de la commande système <code>hostname</code> pour
|
||
déterminer le nom du serveur, ce qui ne correspondra pratiquement
|
||
jamais au nom de serveur que vous souhaitez réellement.</p>
|
||
<div class="example"><p><code>
|
||
httpd: Could not reliably determine the server's fully qualified domain name, using rocinante.local for ServerName
|
||
</code></p></div>
|
||
</div>
|
||
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><a href="../dns-caveats.html">Problèmes concernant le DNS et
|
||
le serveur HTTP Apache</a></li>
|
||
<li><a href="../vhosts/">Documentation sur les serveurs virtuels
|
||
du serveur HTTP Apache</a></li>
|
||
<li><code class="directive"><a href="#usecanonicalname">UseCanonicalName</a></code></li>
|
||
<li><code class="directive"><a href="#usecanonicalphysicalport">UseCanonicalPhysicalPort</a></code></li>
|
||
<li><code class="directive"><a href="#serveralias">ServerAlias</a></code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="serverpath" id="serverpath">Directive</a> <a name="ServerPath" id="ServerPath">ServerPath</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nom de chemin d'URL hérité pour un serveur virtuel à base
|
||
de nom accédé par un navigateur incompatible</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ServerPath <var>chemin d'URL</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">ServerPath</code> permet de définir
|
||
le nom de chemin d'URL hérité d'un hôte, à utiliser avec les <a href="../vhosts/">serveurs virtuels à base de nom</a>.</p>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><a href="../vhosts/">Documentation sur les serveurs virtuels
|
||
du serveur HTTP Apache</a></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="serverroot" id="serverroot">Directive</a> <a name="ServerRoot" id="ServerRoot">ServerRoot</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Racine du répertoire d'installation du
|
||
serveur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ServerRoot <var>chemin de répertoire</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ServerRoot /usr/local/apache</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">ServerRoot</code> permet de définir
|
||
le répertoire dans lequel le serveur est installé. En particulier,
|
||
il contiendra les sous-répertoires <code>conf/</code> et
|
||
<code>logs/</code>. Les chemins relatifs indiqués dans les autres
|
||
directives (comme <code class="directive"><a href="#include">Include</a></code> ou <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code>) seront définis par
|
||
rapport à ce répertoire.</p>
|
||
|
||
<pre class="prettyprint lang-config">ServerRoot "/home/httpd"</pre>
|
||
|
||
|
||
<p>La valeur par défaut de <code class="directive">ServerRoot</code> peut
|
||
être modifiée via l'argument <code>--prefix</code> de la commande <a href="../programs/configure.html"><code>configure</code></a>, et de
|
||
nombreuses distributions tierces du serveur proposent une valeur
|
||
différente de celles listées ci-dessus.</p>
|
||
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><a href="../invoking.html">the <code>-d</code>
|
||
options de <code>httpd</code></a></li>
|
||
<li><a href="../misc/security_tips.html#serverroot">les conseils à
|
||
propos de sécurité</a> pour des informations sur la manière de définir
|
||
correctement les permissions sur le répertoire indiqué par la directive
|
||
<code class="directive">ServerRoot</code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="serversignature" id="serversignature">Directive</a> <a name="ServerSignature" id="ServerSignature">ServerSignature</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit un pied de page pour les documents générés par le
|
||
serveur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ServerSignature On|Off|EMail</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ServerSignature Off</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>All</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">ServerSignature</code> permet de
|
||
définir une ligne de pied de page fixe pour les documents générés
|
||
par le serveur (messages d'erreur, listings de répertoires ftp de
|
||
<code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>, sorties de <code class="module"><a href="../mod/mod_info.html">mod_info</a></code>,
|
||
etc...). Dans le cas d'une chaîne de mandataires, l'utilisateur n'a
|
||
souvent aucun moyen de déterminer lequel des mandataires chaînés a
|
||
généré un message d'erreur, et c'est une des raisons pour lesquelles
|
||
on peut être amené à ajouter un tel pied de page.</p>
|
||
|
||
<p>La valeur par défaut <code>Off</code> supprime la ligne de pied
|
||
de page. la valeur <code>On</code>
|
||
ajoute simplement une ligne contenant le numéro de version du
|
||
serveur ainsi que le nom du serveur virtuel issu de la directive
|
||
<code class="directive"><a href="#servername">ServerName</a></code>, alors que la valeur
|
||
<code>EMail</code> ajoute en plus une référence "mailto:" à
|
||
l'administrateur du document référencé issu la directive
|
||
<code class="directive"><a href="#serveradmin">ServerAdmin</a></code>.</p>
|
||
|
||
<p>Les détails à propos du numéro de
|
||
version du serveur sont contrôlés à l'aide de la directive
|
||
<code class="directive"><a href="#servertokens">ServerTokens</a></code>.</p>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#servertokens">ServerTokens</a></code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="servertokens" id="servertokens">Directive</a> <a name="ServerTokens" id="ServerTokens">ServerTokens</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure l'en-tête <code>Server</code> de la réponse
|
||
HTTP</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ServerTokens Full</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Cette directive permet de contrôler le contenu de l'en-tête
|
||
<code>Server</code> inclus dans la réponse envoyée au client : cet
|
||
en-tête peut contenir le type de système d'exploitation du serveur,
|
||
ainsi que des informations à propos des modules compilés avec le
|
||
serveur.</p>
|
||
|
||
<dl>
|
||
<dt><code>ServerTokens Full</code> (ou non spécifié)</dt>
|
||
|
||
<dd>Le serveur envoie par exemple : <code>Server: Apache/2.4.2
|
||
(Unix) PHP/4.2.2 MyMod/1.2</code></dd>
|
||
|
||
<dt><code>ServerTokens Prod[uctOnly]</code></dt>
|
||
|
||
<dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
|
||
Apache</code></dd>
|
||
|
||
<dt><code>ServerTokens Major</code></dt>
|
||
|
||
<dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
|
||
Apache/2</code></dd>
|
||
|
||
<dt><code>ServerTokens Minor</code></dt>
|
||
|
||
<dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
|
||
Apache/2.4</code></dd>
|
||
|
||
<dt><code>ServerTokens Min[imal]</code></dt>
|
||
|
||
<dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
|
||
Apache/2.4.2</code></dd>
|
||
|
||
<dt><code>ServerTokens OS</code></dt>
|
||
|
||
<dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
|
||
Apache/2.4.2 (Unix)</code></dd>
|
||
|
||
|
||
|
||
</dl>
|
||
|
||
<p>Cette définition s'applique à l'ensemble du serveur et ne peut
|
||
être activée ou désactivée pour tel ou tel serveur virtuel.</p>
|
||
|
||
<p>Cette directive contrôle
|
||
aussi les informations fournies par la directive <code class="directive"><a href="#serversignature">ServerSignature</a></code>.</p>
|
||
|
||
<div class="note">Définir <code class="directive">ServerTokens</code> à une
|
||
valeur inférieure à <code>minimal</code> n'est pas
|
||
recommandé car le débogage des problèmes
|
||
interopérationnels n'en sera alors que plus difficile. Notez
|
||
aussi que la désactivation de l'en-tête Server:
|
||
n'améliore en rien la sécurité de votre
|
||
serveur ; le concept de "sécurité par
|
||
l'obscurité" est un mythe et conduit à
|
||
une mauvaise perception de ce qu'est la sécurité.</div>
|
||
|
||
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#serversignature">ServerSignature</a></code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="sethandler" id="sethandler">Directive</a> <a name="SetHandler" id="SetHandler">SetHandler</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Force le traitement des fichiers spécifiés par un
|
||
gestionnaire particulier</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SetHandler <var>handler-name</var>|none|<var>expression</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>FileInfo</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>L'argument expression est disponible à partir de la version
|
||
2.4.19 su serveur HTTP Apache</td></tr>
|
||
</table>
|
||
<p>Lorsqu'elle se situe à l'intérieur d'un fichier
|
||
<code>.htaccess</code>, ou d'une section <code class="directive"><a href="#directory"><Directory></a></code> ou <code class="directive"><a href="#location"><Location></a></code>, cette directive force le
|
||
traitement de tous les fichiers spécifiés par le <a href="../handler.html">gestionnaire</a> défini par l'argument
|
||
<var>nom gestionnaire</var>. Par exemple, dans le cas d'un
|
||
répertoire dont vous voulez interpréter le contenu comme des
|
||
fichiers de règles d'images cliquables, sans tenir compte des
|
||
extensions, vous pouvez ajouter la ligne suivante dans un fichier
|
||
<code>.htaccess</code> de ce répertoire :</p>
|
||
|
||
<pre class="prettyprint lang-config">SetHandler imap-file</pre>
|
||
|
||
|
||
<p>Autre exemple : si vous voulez que le serveur affiche un
|
||
compte-rendu d'état chaque fois qu'une URL du type <code>http://nom
|
||
serveur/status</code> est appelée, vous pouvez ajouter ceci dans
|
||
<code>httpd.conf</code> :</p>
|
||
|
||
<pre class="prettyprint lang-config"><Location "/status">
|
||
SetHandler server-status
|
||
</Location></pre>
|
||
|
||
|
||
<p>Vous pouvez aussi utiliser cette directive pour associer un
|
||
gestionnaire à des fichiers possèdant une extension de nom de
|
||
fichier particulière. Par exemple :</p>
|
||
|
||
<pre class="prettyprint lang-config"><FilesMatch "\.php$">
|
||
SetHandler application/x-httpd-php
|
||
</FilesMatch></pre>
|
||
|
||
|
||
<p>Pour référencer des variables spécifiques à une requête, y compris les
|
||
références arrières vers des expressions rationnelles nommées, vous pouvez
|
||
utiliser des expressions ayant pour valeur une chaîne : </p>
|
||
|
||
<pre class="prettyprint lang-config"><LocationMatch ^/app/(?<sub>[^/]+)/>
|
||
SetHandler "proxy:unix:/var/run/app_%{env:MATCH_sub}.sock|fcgi://localhost:8080"
|
||
</LocationMatch></pre>
|
||
|
||
|
||
<p>Vous pouvez écraser la définition antérieure d'une directive
|
||
<code class="directive">SetHandler</code> en utilisant la valeur
|
||
<code>None</code>.</p>
|
||
|
||
<div class="note"><h3>Note</h3>
|
||
<p>Comme <code class="directive">SetHandler</code> l'emporte sur la
|
||
définition des gestionnaires par défaut, le comportement habituel
|
||
consistant à traiter les URLs se terminant par un slash (/) comme
|
||
des répertoires ou des fichiers index est désactivé.</p></div>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="setinputfilter" id="setinputfilter">Directive</a> <a name="SetInputFilter" id="SetInputFilter">SetInputFilter</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit les filtres par lesquels vont passer les requêtes
|
||
client et les données POST</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SetInputFilter <var>filtre</var>[;<var>filtre</var>...]</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>FileInfo</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">SetInputFilter</code> permet de
|
||
définir le ou les filtres par lesquels vont passer les requêtes
|
||
client et les données POST au moment où le serveur les reçoit. Cette
|
||
définition vient en ajout à tout autre filtre défini en
|
||
quelqu'endroit que ce soit, y compris via la directive <code class="directive"><a href="../mod/mod_mime.html#addinputfilter">AddInputFilter</a></code>.</p>
|
||
|
||
<p>Si la directive comporte plusieurs filtres, ils doivent être
|
||
séparés par des points-virgules, et spécifiés selon l'ordre dans
|
||
lequel vous souhaitez les voir agir sur les contenus.</p>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li>documentation des <a href="../filter.html">Filtres</a></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="setoutputfilter" id="setoutputfilter">Directive</a> <a name="SetOutputFilter" id="SetOutputFilter">SetOutputFilter</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit les filtres par lesquels vont passer les réponses
|
||
du serveur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SetOutputFilter <var>filtre</var>[;<var>filtre</var>...]</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
|
||
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>FileInfo</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">SetOutputFilter</code> permet de
|
||
définir les filtres par lesquels vont passer les réponses du serveur
|
||
avant d'être envoyées au client. Cette définition vient en ajout à
|
||
tout autre filtre défini en quelqu'endroit que ce soit, y compris
|
||
via la directive <code class="directive"><a href="../mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code>.</p>
|
||
|
||
<p>Par exemple, la configuration suivante va traiter tous les
|
||
fichiers du répertoire <code>/www/data/</code> comme des inclusions
|
||
côté serveur (SSI) :</p>
|
||
|
||
<pre class="prettyprint lang-config"><Directory "/www/data/">
|
||
SetOutputFilter INCLUDES
|
||
</Directory></pre>
|
||
|
||
|
||
<p>Si la directive comporte plusieurs filtres, ils doivent être
|
||
séparés par des points-virgules, et spécifiés selon l'ordre dans
|
||
lequel vous souhaitez les voir agir sur les contenus.</p>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><a href="../filter.html">Filters</a> documentation</li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="stricthostcheck" id="stricthostcheck">Directive</a> <a name="StrictHostCheck" id="StrictHostCheck">StrictHostCheck</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine si le nom d'hôte contenu dans une requête doit être
|
||
explicitement spécifié au niveau du serveur virtuel qui a pris en compte cette
|
||
dernière.
|
||
</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>StrictHostCheck ON|OFF</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>StrictHostCheck OFF</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.49 du serveur HTTP Apache.</td></tr>
|
||
</table>
|
||
<p>Par défaut, le serveur répond aux requêtes quel que soit le nom d'hôte
|
||
qu'elles contiennent, y compris un nom d'hôte non prévu dans la
|
||
configuration. Bien que cela soit pratique, il peut s'avérer souhaitable de
|
||
restreindre les noms d'hôte qu'une application sous-jacente devra prendre en
|
||
compte car elle va souvent générer des réponses en se référençant elle-même.</p>
|
||
|
||
<p>Si la directive <code class="directive">StrictHostCheck</code> est définie à
|
||
<em>ON</em>, le serveur générera une erreur HTTP 400 si le nom d'hôte que
|
||
contient la requête n'a pas été explicitement spécifié par une directive
|
||
<code class="directive"><a href="#servername">ServerName</a></code> ou <code class="directive"><a href="#serveralias">ServerAlias</a></code> au niveau du serveur virtuel qui
|
||
correspond le mieux aux caractéristiques de la connexion entrante.</p>
|
||
|
||
<p>Cette directive permet aussi de rechercher une correspondance entre le nom
|
||
d'hôte de la requête et les noms d'hôte spécifiés au sein de la balise
|
||
ouvrante <code class="directive"><a href="#virtualhost">VirtualHost</a></code>. Il s'agit
|
||
cependant d'un mécanisme de configuration relativement obscur qui agit comme
|
||
une directive <code class="directive"><a href="#serveralias">ServerAlias</a></code>
|
||
supplémentaire.</p>
|
||
|
||
<p>Cette directive n'a aucun effet dans les serveurs virtuels qui ne sont pas
|
||
des serveurs par défaut. La valeur héritée de la configuration globale du
|
||
serveur ou le serveur virtuel par défaut pour l'adresse IP/port de la
|
||
connexion sous-jacente déterminent la valeur effective.</p>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="timeout" id="timeout">Directive</a> <a name="TimeOut" id="TimeOut">TimeOut</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Temps pendant lequel le serveur va attendre certains
|
||
évènements avant de considérer qu'une requête a échoué</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>TimeOut <var>secondes</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>TimeOut 60</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">TimeOut</code> permet de définir le
|
||
temps maximum pendant lequel Apache httpd va attendre des entrées/sorties
|
||
selon les circonstances :</p>
|
||
|
||
<ul>
|
||
<li><p>Lors de la lecture de données en provenance du client, le
|
||
temps maximum jusqu'à l'arrivée d'un paquet TCP si le tampon est
|
||
vide.</p>
|
||
<p>Pour les données initiales d'une nouvelle connexion, et tant qu'une
|
||
directive <code class="directive"><a href="#acceptfilter">AcceptFilter</a></code> n'aura pas
|
||
transmis cette nouvelle connexion au serveur, cette directive n'aura aucun
|
||
effet.</p>
|
||
</li>
|
||
|
||
<li>Lors de l'écriture de données destinées au client, le temps
|
||
maximum jusqu'à l'arrivée de l'accusé-réception d'un paquet si le
|
||
tampon d'envoi est plein.</li>
|
||
|
||
<li>Avec <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code> et <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code>, le temps
|
||
d'attente maximum pour un bloc individuel en sortie d'un script CGI.</li>
|
||
|
||
<li>Avec <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code>, le temps d'attente
|
||
maximum des sorties d'un processus de filtrage.</li>
|
||
|
||
<li>Avec <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>, la valeur du délai par défaut
|
||
si <code class="directive"><a href="../mod/mod_proxy.html#proxytimeout">ProxyTimeout</a></code> n'est
|
||
pas défini.</li>
|
||
</ul>
|
||
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="traceenable" id="traceenable">Directive</a> <a name="TraceEnable" id="TraceEnable">TraceEnable</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine le comportement des requêtes
|
||
<code>TRACE</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>TraceEnable <var>[on|off|extended]</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>TraceEnable on</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Cette directive l'emporte sur le comportement de
|
||
<code>TRACE</code> pour le noyau du serveur et
|
||
<code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>. La définition par défaut
|
||
<code>TraceEnable on</code> permet des requêtes <code>TRACE</code>
|
||
selon la RFC 2616, qui interdit d'ajouter tout corps à la requête.
|
||
La définition <code>TraceEnable off</code> indique au noyau du
|
||
serveur et à <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> de retourner un code
|
||
d'erreur <code>405</code> (Méthode non autorisée) au client.</p>
|
||
|
||
<p>En fait, et à des fins de test et de diagnostic seulement, on
|
||
peut autoriser l'ajout d'un corps de requête à l'aide de la
|
||
définition non standard <code>TraceEnable extended</code>. Le noyau
|
||
du serveur (dans le cas d'un serveur d'origine) va limiter la taille
|
||
du corps de requête à 64Kb (plus 8Kb pour les en-têtes de
|
||
fractionnement si <code>Transfer-Encoding: chunked</code> est
|
||
utilisé). Le noyau du serveur va reproduire l'ensemble des en-têtes,
|
||
y compris les en-têtes de fractionnement avec le corps de la
|
||
réponse. Dans le cas d'un serveur mandataire, la taille du corps de
|
||
requête n'est pas limitée à 64Kb.</p>
|
||
|
||
<div class="note"><h3>Note</h3>
|
||
<p>Bien que certains prétendent le contraire, activer la méthode
|
||
<code>TRACE</code> ne constitue pas un problème de sécurité dans Apache
|
||
httpd. La méthode <code>TRACE</code> est définie par la spécification
|
||
HTTP/1.1 et les différentes implémentations sont censées la supporter.</p>
|
||
</div>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="undefine" id="undefine">Directive</a> <a name="UnDefine" id="UnDefine">UnDefine</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Invalide la définition d'une variable</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>UnDefine <var>nom-variable</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Annule l'effet d'une directive <code class="directive"><a href="#define">Define</a></code> ou d'un argument <code>-D</code> de
|
||
<code class="program"><a href="../programs/httpd.html">httpd</a></code> en invalidant l'existence de la variable
|
||
correspondante.</p>
|
||
<p>On peut utiliser cette directive pour inverser l'effet d'une
|
||
section <code class="directive"><a href="#ifdefine"><IfDefine></a></code>
|
||
sans avoir à modifier les arguments <code>-D</code> dans les scripts
|
||
de démarrage.</p>
|
||
|
||
<p>Afin d'éviter tout risque de collision avec la syntaxe de la directive
|
||
<code class="directive"><a href="../mod/mod_rewrite.html#rewritemap">RewriteMap</a></code>, les noms de
|
||
variables ne doivent pas contenir de caractère ":".</p>
|
||
|
||
<div class="note"><h3>Piège de la portée de cette directive</h3>
|
||
<p>Si cette directive est définie au sein d'un bloc VirtualHost, les
|
||
changements qu'elle induit sont visibles de toute directive
|
||
ultérieure, au delà de tout bloc VirtualHost.</p>
|
||
</div>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#define">Define</a></code></li>
|
||
<li><code class="directive"><a href="#ifdefine">IfDefine</a></code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="usecanonicalname" id="usecanonicalname">Directive</a> <a name="UseCanonicalName" id="UseCanonicalName">UseCanonicalName</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit la manière dont le serveur détermine son propre nom
|
||
et son port</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>UseCanonicalName On|Off|DNS</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>UseCanonicalName Off</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Dans de nombreuses situations, Apache httpd doit construire une URL
|
||
<em>auto-identifiante</em> -- c'est à dire une URL qui fait
|
||
référence au serveur lui-même. Avec <code>UseCanonicalName
|
||
On</code>, Apache httpd va utiliser le nom d'hôte et le port spécifiés par
|
||
la directive <code class="directive"><a href="#servername">ServerName</a></code> pour
|
||
construire le nom canonique du serveur. Ce nom est utilisé dans
|
||
toutes les URLs auto-identifiantes, et affecté aux variables
|
||
<code>SERVER_NAME</code> et <code>SERVER_PORT</code> dans les
|
||
programmes CGI.</p>
|
||
|
||
<p>Avec <code>UseCanonicalName Off</code>, Apache httpd va construire ses
|
||
URLs auto-identifiantes à l'aide du nom d'hôte et du port fournis
|
||
par le client, si ce dernier en a fourni un (dans la négative,
|
||
Apache utilisera le nom canonique, de la même manière que
|
||
ci-dessus). Ces valeurs sont les mêmes que celles qui sont utilisées
|
||
pour implémenter les <a href="../vhosts/name-based.html">serveurs virtuels à base de
|
||
nom</a>, et sont disponibles avec les mêmes clients. De même, les
|
||
variables CGI <code>SERVER_NAME</code> et <code>SERVER_PORT</code>
|
||
seront affectées des valeurs fournies par le client.</p>
|
||
|
||
<p>Cette directive peut s'avérer utile, par exemple, sur un serveur
|
||
intranet auquel les utilisateurs se connectent en utilisant des noms
|
||
courts tels que <code>www</code>. Si les utilisateurs tapent un nom
|
||
court suivi d'une URL qui fait référence à un répertoire, comme
|
||
<code>http://www/splat</code>, <em>sans le slash terminal</em>, vous
|
||
remarquerez qu'Apache httpd va les rediriger vers
|
||
<code>http://www.example.com/splat/</code>. Si vous avez activé
|
||
l'authentification, ceci va obliger l'utilisateur à s'authentifier
|
||
deux fois (une première fois pour <code>www</code> et une seconde
|
||
fois pour <code>www.example.com</code> -- voir <a href="http://wiki.apache.org/httpd/FAQ#Why_does_Apache_ask_for_my_password_twice_before_serving_a_file.3F">la
|
||
foire aux questions sur ce sujet pour plus d'informations</a>).
|
||
Par contre, si <code class="directive">UseCanonicalName</code> est définie à
|
||
<code>Off</code>, Apache httpd redirigera l'utilisateur vers
|
||
<code>http://www/splat/</code>.</p>
|
||
|
||
<p>Pour l'hébergement virtuel en masse à base d'adresse IP, on
|
||
utilise une troisième option, <code>UseCanonicalName
|
||
DNS</code>, pour supporter les clients anciens qui ne
|
||
fournissent pas d'en-tête <code>Host:</code>. Apache httpd effectue alors
|
||
une recherche DNS inverse sur l'adresse IP du serveur auquel le
|
||
client s'est connecté afin de construire ses URLs
|
||
auto-identifiantes.</p>
|
||
|
||
<div class="warning"><h3>Avertissement</h3>
|
||
<p>Les programmes CGI risquent d'être perturbés par cette option
|
||
s'ils tiennent compte de la variable <code>SERVER_NAME</code>. Le
|
||
client est pratiquement libre de fournir la valeur qu'il veut comme
|
||
nom d'hôte. Mais si le programme CGI n'utilise
|
||
<code>SERVER_NAME</code> que pour construire des URLs
|
||
auto-identifiantes, il ne devrait pas y avoir de problème.</p>
|
||
</div>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#usecanonicalphysicalport">UseCanonicalPhysicalPort</a></code></li>
|
||
<li><code class="directive"><a href="#servername">ServerName</a></code></li>
|
||
<li><code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="usecanonicalphysicalport" id="usecanonicalphysicalport">Directive</a> <a name="UseCanonicalPhysicalPort" id="UseCanonicalPhysicalPort">UseCanonicalPhysicalPort</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit la manière dont le serveur
|
||
détermine son propre port</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>UseCanonicalPhysicalPort On|Off</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>UseCanonicalPhysicalPort Off</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Dans de nombreuses situations, Apache httpd doit construire une URL
|
||
<em>auto-identifiante</em> -- c'est à dire une URL qui fait
|
||
référence au serveur lui-même. Avec <code>UseCanonicalPhysicalPort
|
||
On</code>, Apache httpd va fournir le numéro de port physique réel utilisé
|
||
par la requête en tant que port potentiel, pour construire le port
|
||
canonique afin que le serveur puisse alimenter la directive
|
||
<code class="directive"><a href="#usecanonicalname">UseCanonicalName</a></code>. Avec
|
||
<code>UseCanonicalPhysicalPort Off</code>, Apache httpd n'utilisera pas le
|
||
numéro de port physique réel, mais au contraire se référera aux
|
||
informations de configuration pour construire un numéro de port
|
||
valide.</p>
|
||
|
||
<div class="note"><h3>Note</h3>
|
||
<p>L'ordre dans lequel s'effectue la recherche quand on utilise le
|
||
port physique est le suivant :</p>
|
||
<dl>
|
||
<dt><code>UseCanonicalName On</code></dt>
|
||
<dd>
|
||
<ol>
|
||
<li>Port indiqué dans <code class="directive"><a href="#servername">Servername</a></code></li>
|
||
<li>Port physique</li>
|
||
<li>Port par défaut</li>
|
||
</ol>
|
||
</dd>
|
||
<dt><code>UseCanonicalName Off | DNS</code></dt>
|
||
<dd>
|
||
<ol>
|
||
<li>Port spécifié dans l'en-tête <code>Host:</code></li>
|
||
<li>Port physique</li>
|
||
<li>Port spécifié par <code class="directive"><a href="#servername">Servername</a></code></li>
|
||
<li>Port par défaut</li>
|
||
</ol>
|
||
</dd>
|
||
</dl>
|
||
|
||
<p>Avec <code>UseCanonicalPhysicalPort Off</code>, on reprend
|
||
l'ordre ci-dessus en supprimant "Port physique".</p>
|
||
</div>
|
||
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><code class="directive"><a href="#usecanonicalname">UseCanonicalName</a></code></li>
|
||
<li><code class="directive"><a href="#servername">ServerName</a></code></li>
|
||
<li><code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="virtualhost" id="virtualhost">Directive</a> <a name="VirtualHost" id="VirtualHost"><VirtualHost></a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Contient des directives qui ne s'appliquent qu'à un nom
|
||
d'hôte spécifique ou à une adresse IP</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code><VirtualHost
|
||
<var>adresse IP</var>[:<var>port</var>] [<var>adresse
|
||
IP</var>[:<var>port</var>]] ...> ...
|
||
</VirtualHost></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Noyau httpd</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
|
||
</table>
|
||
<p>Les balises <code class="directive"><VirtualHost></code> et
|
||
<code></VirtualHost></code> permettent de rassembler un groupe
|
||
de directives qui ne s'appliquent qu'à un serveur virtuel
|
||
particulier. Toute directive autorisée dans un contexte de serveur
|
||
virtuel peut être utilisée. Lorsque le serveur reçoit un requête
|
||
pour un document hébergé par un serveur virtuel particulier, il
|
||
applique les directives de configuration rassemblées dans la section
|
||
<code class="directive"><VirtualHost></code>. <var>adresse
|
||
IP</var> peut être une des entités suivantes, éventuellement suivies
|
||
d'un caractère ':' et d'un numéro de port (ou *) :</p>
|
||
|
||
<ul>
|
||
<li>L'adresse IP du serveur virtuel ;</li>
|
||
|
||
<li>Un nom de domaine entièrement qualifié correspondant à
|
||
l'adresse IP du serveur virtuel (non recommandé) ;</li>
|
||
|
||
<li>Le caractère <code>*</code>, qui agit comme un
|
||
caractère générique, et correspond à toute adresse IP.</li>
|
||
|
||
<li>La chaîne <code>_default_</code>, dont la signification est
|
||
identique à celle du caractère <code>*</code></li>
|
||
|
||
</ul>
|
||
|
||
<pre class="prettyprint lang-config"><VirtualHost 10.1.2.3:80>
|
||
ServerAdmin webmaster@host.example.com
|
||
DocumentRoot "/www/docs/host.example.com"
|
||
ServerName host.example.com
|
||
ErrorLog "logs/host.example.com-error_log"
|
||
TransferLog "logs/host.example.com-access_log"
|
||
</VirtualHost></pre>
|
||
|
||
|
||
|
||
<p>Les adresses IPv6 doivent être entourées de crochets car dans le
|
||
cas contraire, un éventuel port optionnel ne pourrait pas être
|
||
déterminé. Voici un exemple de serveur virtuel avec adresse IPv6
|
||
:</p>
|
||
|
||
<pre class="prettyprint lang-config"><VirtualHost [2001:db8::a00:20ff:fea7:ccea]:80>
|
||
ServerAdmin webmaster@host.example.com
|
||
DocumentRoot "/www/docs/host.example.com"
|
||
ServerName host.example.com
|
||
ErrorLog "logs/host.example.com-error_log"
|
||
TransferLog "logs/host.example.com-access_log"
|
||
</VirtualHost></pre>
|
||
|
||
|
||
<p>Chaque serveur virtuel doit correspondre à une adresse IP, un
|
||
port ou un nom d'hôte spécifique ; dans le premier cas, le serveur
|
||
doit être configuré pour recevoir les paquets IP de plusieurs
|
||
adresses (si le serveur n'a qu'une interface réseau, on peut
|
||
utiliser à cet effet la commande <code>ifconfig alias</code> -- si
|
||
votre système d'exploitation le permet).</p>
|
||
|
||
<div class="note"><h3>Note</h3>
|
||
<p>L'utilisation de la directive <code class="directive"><VirtualHost></code> n'affecte en rien les
|
||
adresses IP sur lesquelles Apache httpd est en écoute. Vous devez vous
|
||
assurer que les adresses des serveurs virtuels sont bien incluses
|
||
dans la liste des adresses précisées par la directive <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code>.</p>
|
||
</div>
|
||
|
||
<p>Tout bloc <code class="directive"><VirtualHost></code> doit comporter une directive
|
||
<code class="directive"><a href="#servername">ServerName</a></code>. Dans le cas
|
||
contraire, le serveur virtuel héritera de la valeur de la directive
|
||
<code class="directive"><a href="#servername">ServerName</a></code> issue de la
|
||
configuration du serveur principal.</p>
|
||
|
||
<p>A l'arrivée d'une requête, le serveur tente de la
|
||
faire prendre en compte par la section <code class="directive"><VirtualHost></code> qui correspond le mieux en ne
|
||
se basant que sur la paire adresse IP/port. Les chaînes sans
|
||
caractères génériques l'emportent sur celles qui en contiennent. Si
|
||
aucune correspondance du point de vue de l'adresse IP/port n'est
|
||
trouvée, c'est la configuration du serveur "principal" qui sera
|
||
utilisée.</p>
|
||
|
||
<p>Si plusieurs serveurs virtuels correspondent du point de vue de
|
||
l'adresse IP/port, le serveur sélectionne celui qui correspond le
|
||
mieux du point de vue du nom d'hôte de la requête. Si aucune
|
||
correspondance du point de vue du nom d'hôte n'est trouvée, c'est le
|
||
premier serveur virtuel dont l'adresse IP/port correspond qui sera
|
||
utilisé. Par voie de conséquence, le premier serveur virtuel
|
||
comportant une certaine paire adresse IP/port est le serveur virtuel
|
||
par défaut pour cette paire adresse IP/port.</p>
|
||
|
||
<div class="warning"><h3>Sécurité</h3>
|
||
<p>Voir le document sur les <a href="../misc/security_tips.html">conseils à propos de sécurité</a>
|
||
pour une description détaillée des raisons pour lesquelles la
|
||
sécurité de votre serveur pourrait être compromise, si le répertoire
|
||
contenant les fichiers journaux est inscriptible par tout autre
|
||
utilisateur que celui qui démarre le serveur.</p>
|
||
</div>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><a href="../vhosts/">Documentation des serveurs virtuels
|
||
du serveur HTTP Apache</a></li>
|
||
<li><a href="../dns-caveats.html">Problèmes concernant le DNS et
|
||
le serveur HTTP Apache</a></li>
|
||
<li><a href="../bind.html">Définition des adresses et ports
|
||
qu'utilise le serveur HTTP Apache</a></li>
|
||
<li><a href="../sections.html">Comment fonctionnent les sections
|
||
<Directory>, <Location> et <Files></a> pour une
|
||
explication de la manière dont ces différentes sections se combinent
|
||
entre elles à la réception d'une requête</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="bottomlang">
|
||
<p><span>Langues Disponibles: </span><a href="../de/mod/core.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
|
||
<a href="../en/mod/core.html" hreflang="en" rel="alternate" title="English"> en </a> |
|
||
<a href="../es/mod/core.html" hreflang="es" rel="alternate" title="Español"> es </a> |
|
||
<a href="../fr/mod/core.html" title="Français"> fr </a> |
|
||
<a href="../ja/mod/core.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
|
||
<a href="../tr/mod/core.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </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&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 Libera.chat, 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/2.4/mod/core.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 2024 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="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> |