<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English Revision: 1883203 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->

<!--
Upon adding a new module XML doc, you will need to:

svn ps svn:eol-style native <alltextfiles>
svn ps svn:keywords LastChangedRevision mod_allowmethods.xml

in order for it to rebuild correctly.

-->

<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<modulesynopsis metafile="mod_allowmethods.xml.meta">
<name>mod_allowmethods</name>
<description>Limitation simple des méthodes HTTP acceptées par e serveur</description>
<status>Experimental</status>
<sourcefile>mod_allowmethods.c</sourcefile>
<identifier>allowmethods_module</identifier>
<compatibility>Disponible à partir de la version 2.3 du serveur HTTP Apache.</compatibility>

<summary>
<p>Ce module fournit une manière simple de restreindre les méthodes HTTP
acceptées par le serveur. La configuration la plus courante
est du style :</p>

<highlight language="config">
&lt;Location "/"&gt;
   AllowMethods GET POST OPTIONS
&lt;/Location&gt;

&lt;Location "/nopost"&gt;
   AllowMethods -POST
&lt;/Location&gt;
</highlight>

</summary>

<directivesynopsis>
<name>AllowMethods</name>
<description>Restreint l'accès aux méthodes HTTP spécifiées</description>
<syntax>AllowMethods reset | [+|-]<var>HTTP-method</var>
[ [+|-]<var>HTTP-method</var> ] ...</syntax>
<default>AllowMethods reset</default>
<contextlist><context>directory</context></contextlist>
<status>Experimental</status>
<compatibility>[+|-] disponible à partir de la version 2.5.1 du serveur HTTP
Apache</compatibility>

<usage>

<p>Le nom de chaque méthode HTTP est sensible à la casse, et est le plus
souvent défini en majuscules, comme dans les RFCs. Les méthodes GET et
HEAD sont traitées de la même manière. Le mot-clé
<code>reset</code> permet de désactiver
<module>mod_allowmethods</module> dans les niveaux inférieurs
d'imbrication :</p>

<highlight language="config">
&lt;Location "/svn"&gt;
   AllowMethods reset
&lt;/Location&gt;
</highlight>

<note><title>Avertissement</title>
  <p>La méthode TRACE ne peut pas être rejetée par ce module ; pour ce
  faire, vous devez utiliser la directive <directive
  module="core">TraceEnable</directive>.</p>
</note>

<p>Normalement, si plusieurs directives <directive>AllowMethods</directive>
peuvent s'appliquer à un répertoire, c'est la plus spécifique d'entre elles qui
sera prise en compte, les autres étant ignorées ; les différentes méthodes
spécifiées ne sont en effet pas fusionnées (voir <a
href="../sections.html#merging">comment sont fusionnées les sections</a>). Si
cependant <em>toutes</em> les méthodes spécifiées dans la directive
<directive>AllowMethods</directive> sont précédées d'un symbole <code>+</code>
ou <code>-</code>, alors les méthodes spécifiées seront fusionnées. Pour plus de
précision, les méthodes précédées d'un <code>+</code> seront ajoutées à la liste
des méthodes autorisées, alors que celles qui sont précédées d'un <code>-</code>
en seront supprimées.</p>

<note><title>Note</title>
<p>Mélanger des directives <directive>AllowMethods</directive> contenant des
symboles <code>+</code> ou <code>-</code> avec des directives
<directive>AllowMethods</directive> qui n'en contiennent pas constitue une
erreur de syntaxe. Cette erreur interrompra le démarrage du serveur au cours de
la vérification de la syntaxe du fichier de configuration.</p>
</note>

<p>Le module <module>mod_allowmethods</module> a été écrit pour
remplacer l'implémentation "bricolée" des directives <directive
module="core">Limit</directive> et <directive
module="core">LimitExcept</directive>.</p>

</usage>
</directivesynopsis>

</modulesynopsis>

