<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
-<!-- English Revision: 1174747:1331584 (outdated) -->
+<!-- English Revision : 1331584 -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
gestionnaire qui associe un suffixe de fichier à une <code>type-map</code>;
ce qui se fait simplement en ajoutant</p>
-<example>AddHandler type-map .var</example>
+<highlight language="config">AddHandler type-map .var</highlight>
<p>dans le fichier de configuration du serveur.</p>
nommé par la directive <directive
module="mod_dir">DirectoryIndex</directive>, si le serveur tente d'indexer
un répertoire. Si les fichiers de configuration spécifient</p>
-<example>DirectoryIndex index</example>
+<highlight language="config">DirectoryIndex index</highlight>
<p>le serveur va choisir entre <code>index.html</code>
et <code>index.html3</code> si les deux fichiers sont présents. Si aucun
n'est présent, mais <code>index.cgi</code> existe,
variante, le processus normal de négociation sera lancé.</p>
<example><title>Exemple</title>
- SetEnvIf Cookie "language=(.+)" prefer-language=$1<br />
- Header append Vary cookie
+ <highlight language="config">
+SetEnvIf Cookie "language=(.+)" prefer-language=$1
+Header append Vary cookie
+ </highlight>
</example>
</section>
</section>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1328334:1333317 (outdated) -->
+<!-- English Revision : 1333317 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
Il y a cependant un cas dans lequel vous pouvez accélérer le serveur.
Au lieu d'utiliser une directive générique comme :</p>
- <highlight language="config">
- DirectoryIndex index
- </highlight>
+ <highlight language="config">DirectoryIndex index</highlight>
<p>utilisez une liste explicite d'options :</p>
- <highlight language="config">
- DirectoryIndex index.cgi index.pl index.shtml index.html
- </highlight>
+ <highlight language="config">DirectoryIndex index.cgi index.pl index.shtml index.html</highlight>
<p>où vous placez le choix courant en première position.</p>
serveurs présentant un traffic important car il possède une empreinte
mémoire plus petite que le MPM prefork.</li>
+ <li>Comme le MPM Worker, le MPM <module>event</module> utilise
+ les threads, mais il a été conçu pour traiter davantage de
+ requêtes simultanément en confiant une partie du travail à des
+ threads de support, ce qui permet aux threads principaux de
+ traiter de nouvelles requêtes.</li>
+
<li>Le MPM <module>prefork</module> utilise plusieurs processus enfants
possédant chacun un seul thread. Chaque processus gère une seule
connexion à la fois. Sur de nombreux systèmes, prefork est comparable
proposés qu'à des fins pédagogiques) :</p>
<highlight language="c">
-for (;;) {
- for (;;) {
- fd_set accept_fds;
-
- FD_ZERO (&accept_fds);
- for (i = first_socket; i <= last_socket; ++i) {
- FD_SET (i, &accept_fds);
- }
- rc = select (last_socket+1, &accept_fds, NULL, NULL, NULL);
- if (rc < 1) continue;
- new_connection = -1;
- for (i = first_socket; i <= last_socket; ++i) {
- if (FD_ISSET (i, &accept_fds)) {
- new_connection = accept (i, NULL, NULL);
- if (new_connection != -1) break;
- }
- }
- if (new_connection != -1) break;
- }
- process the new_connection;
-}
+ for (;;) {
+ for (;;) {
+ fd_set accept_fds;
+
+ FD_ZERO (&accept_fds);
+ for (i = first_socket; i <= last_socket; ++i) {
+ FD_SET (i, &accept_fds);
+ }
+ rc = select (last_socket+1, &accept_fds, NULL, NULL, NULL);
+ if (rc < 1) continue;
+ new_connection = -1;
+ for (i = first_socket; i <= last_socket; ++i) {
+ if (FD_ISSET (i, &accept_fds)) {
+ new_connection = accept (i, NULL, NULL);
+ if (new_connection != -1) break;
+ }
+ }
+ if (new_connection != -1) break;
+ }
+ process_the(new_connection);
+ }
</highlight>
<p>Mais cette implémentation rudimentaire présente une sérieuse lacune.
différences sont mises en surbrillance) :</p>
<highlight language="c">
-for (;;) {
- <strong>accept_mutex_on ();</strong>
- for (;;) {
- fd_set accept_fds;
-
- FD_ZERO (&accept_fds);
- for (i = first_socket; i <= last_socket; ++i) {
- FD_SET (i, &accept_fds);
- }
- rc = select (last_socket+1, &accept_fds, NULL, NULL, NULL);
- if (rc < 1) continue;
- new_connection = -1;
- for (i = first_socket; i <= last_socket; ++i) {
- if (FD_ISSET (i, &accept_fds)) {
- new_connection = accept (i, NULL, NULL);
- if (new_connection != -1) break;
- }
- }
- if (new_connection != -1) break;
- }
- <strong>accept_mutex_off ();</strong>
- process the new_connection;
-}
+ for (;;) {
+ <strong>accept_mutex_on ();</strong>
+ for (;;) {
+ fd_set accept_fds;
+
+ FD_ZERO (&accept_fds);
+ for (i = first_socket; i <= last_socket; ++i) {
+ FD_SET (i, &accept_fds);
+ }
+ rc = select (last_socket+1, &accept_fds, NULL, NULL, NULL);
+ if (rc < 1) continue;
+ new_connection = -1;
+ for (i = first_socket; i <= last_socket; ++i) {
+ if (FD_ISSET (i, &accept_fds)) {
+ new_connection = accept (i, NULL, NULL);
+ if (new_connection != -1) break;
+ }
+ }
+ if (new_connection != -1) break;
+ }
+ <strong>accept_mutex_off ();</strong>
+ process the new_connection;
+ }
</highlight>
<p><a id="serialize" name="serialize">Les fonctions</a>
ceci :</p>
<highlight language="c">
-void lingering_close (int s)
-{
- char junk_buffer[2048];
-
- /* shutdown the sending side */
- shutdown (s, 1);
-
- signal (SIGALRM, lingering_death);
- alarm (30);
-
- for (;;) {
- select (s for reading, 2 second timeout);
- if (error) break;
- if (s is ready for reading) {
- if (read (s, junk_buffer, sizeof (junk_buffer)) <= 0) {
- break;
- }
- /* just toss away whatever is here */
- }
- }
-
- close (s);
-}
+ void lingering_close (int s)
+ {
+ char junk_buffer[2048];
+
+ /* shutdown the sending side */
+ shutdown (s, 1);
+
+ signal (SIGALRM, lingering_death);
+ alarm (30);
+
+ for (;;) {
+ select (s for reading, 2 second timeout);
+ if (error) break;
+ if (s is ready for reading) {
+ if (read (s, junk_buffer, sizeof (junk_buffer)) <= 0) {
+ break;
+ }
+ /* just toss away whatever is here */
+ }
+ }
+
+ close (s);
+ }
</highlight>
<p>Ceci ajoute naturellement un peu de charge à la fin d'une connexion,
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1300924:1330882 (outdated) -->
+<!-- English revision : 1330882 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<p>Ajoutez dans le fichier de configuration du serveur</p>
<highlight language="config">
-<Directory />
- AllowOverride None
+<Directory />
+ AllowOverride None
</Directory>
</highlight>
<highlight language="config">
<Directory />
-Order Deny,Allow
-Deny from all
+ Order Deny,Allow
+ Deny from all
</Directory>
</highlight>
<highlight language="config">
<Directory /usr/users/*/public_html>
- Order Deny,Allow
- Allow from all
-</Directory>
-<Directory /usr/local/httpd>
- Order Deny,Allow
- Allow from all
+ Order Deny,Allow
+ Allow from all
+</Directory>
+<Directory /usr/local/httpd>
+ Order Deny,Allow
+ Allow from all
</Directory>
</highlight>
fortement d'inclure la ligne suivante dans le fichier de configuration de
votre serveur :</p>
- <highlight language="config">
- UserDir disabled root
- </highlight>
+ <highlight language="config">UserDir disabled root</highlight>
</section>
<highlight language="config">
<Files ".ht*">
- Order allow,deny
- Deny from all
+ Order allow,deny
+ Deny from all
</Files>
</highlight>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1311806:1332585 (outdated) -->
+<!-- English Revision : 1332585 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
module="mod_rewrite">RewriteRule</directive> peut être modifié par un ou
plusieurs drapeaux. Les drapeaux sont situés en fin de règle, entourés
de crochets, et séparés le cas échéant par des virgules.</p>
-<example>
-RewriteRule modèle cible [drapeau1,drapeau2,drapeau3]
-</example>
+<highlight language="config">RewriteRule pattern target [Flag1,Flag2,Flag3]</highlight>
<p>Les drapeaux ont tous une forme courte, comme <code>CO</code>, ainsi
qu'une forme longue, comme <code>cookie</code>. Certains drapeaux
non-alphanumériques des références arrières seront échappés. Considérons
par exemple cette règle :</p>
-<highlight language="config">
-RewriteRule ^search/(.*)$ /search.php?term=$1
-</highlight>
+<highlight language="config">RewriteRule ^search/(.*)$ /search.php?term=$1</highlight>
<p>Soit le terme de recherche 'x & y/z' ; un navigateur va le coder
en 'x%20%26%20y%2Fz', transformant la requête en
<p>Voici un exemple :</p>
<highlight language="config">
-RewriteEngine On<br />
+RewriteEngine On
RewriteRule ^/index\.html - [CO=frontdoor:yes:.example.org:1440:/]
</highlight>
image. Cette variable d'environnement est ensuite utilisée pour exclure
une telle requête du journal des accès.</p>
-<highlight language="config">
-RewriteRule \.(png|gif|jpg) - [E=image:1]
+<example>
+RewriteRule \.(png|gif|jpg) - [E=image:1]<br />
CustomLog logs/access_log combined env=!image
-</highlight>
+</example>
<p>Notez que le même effet peut être obtenu à l'aide de la directive
<directive module="mod_setenvif">SetEnvIf</directive>. Cette technique
<p>La règle suivante va interdire la téléchargement de fichiers
<code>.exe</code> depuis votre serveur.</p>
-<highlight language="config">
-RewriteRule \.exe - [F]
-</highlight>
+<highlight language="config">RewriteRule \.exe - [F]</highlight>
<p>Cet exemple utilise la syntaxe "-" pour la cible de réécriture, ce
qui signifie que l'URI de la requête n'est pas modifié. Il n'y a aucune
<p>Comme dans le cas du drapeau [F], on utilise en général la syntaxe
"-" pour la cible de réécriture lorsqu'on utilise le drapeau [G] :</p>
-<highlight language="config">
-RewriteRule ancienne-ressource - [G,NC]
-</highlight>
+<highlight language="config">RewriteRule oldproduct - [G,NC]</highlight>
<p>Lorsqu'on utilise [G], [L] est implicite - c'est à dire que la
réponse est renvoyée immédiatement, et aucune autre règle n'est évaluée.</p>
l'interprétation de tous les fichiers sans extension par le gestionnaire
php :</p>
-<highlight language="config">
-RewriteRule !\. - [H=application/x-httpd-php]
-</highlight>
+<highlight language="config">RewriteRule !\. -
+[H=application/x-httpd-php]</highlight>
<p>
L'expression rationnelle ci-dessus - <code>!\.</code> - correspond à
ceci jusqu'il n'y ait plus de A à remplacer.
</p>
-<highlight language="config">
-RewriteRule (.*)A(.*) $1B$2 [N]
-</highlight>
+<highlight language="config">RewriteRule (.*)A(.*) $1B$2 [N]</highlight>
<p>Vous pouvez vous représenter ce traitement comme une boucle
<code>while</code> : tant que le modèle de la règle correspond (c'est à
insensible à la casse, si bien que par exemple, <code>.jpg</code> aussi
bien que <code>.JPG</code> seront acceptés.</p>
-<highlight language="config">
-RewriteRule (.*\.(jpg|gif|png))$ http://images.example.com$1 [P,NC]
-</highlight>
+<highlight language="config">RewriteRule (.*\.(jpg|gif|png))$ http://images.example.com$1 [P,NC]</highlight>
</section>
<section id="flag_ne"><title>NE|noescape</title>
hexadécimal. Le drapeau [NE] permet d'éviter cette conversion.
</p>
-<highlight language="config">
-RewriteRule ^/ancre/(.+) /grosse-page.html#$1 [NE,R]
-</highlight>
+<highlight language="config">RewriteRule ^/anchor/(.+) /bigpage.html#$1 [NE,R]</highlight>
<p>
Dans l'exemple ci-dessus, <code>/anchor/xyz</code> est réécrit en
soient traitées par un serveur d'images annexe, vous pouvez utiliser
une règle de ce style :</p>
-<highlight language="config">
-RewriteRule /(.*)\.(jpg|gif|png) http://images.example.com/$1.$2 [P]
-</highlight>
+<highlight language="config">RewriteRule /(.*)\.(jpg|gif|png)$ http://images.example.com/$1.$2 [P]</highlight>
<p>L'utilisation du drapeau [P] provoque aussi l'effet du drapeau [L] -
autrement dit, la requête est immédiatement envoyée au mandataire, et
</p>
<highlight language="config">
-Alias /icons /usr/local/apache/icons<br />
-RewriteRule /pics/(.+)\.jpg /icons/$1.gif [PT]
+Alias /icons /usr/local/apache/icons
+RewriteRule /pics/(.+)\.jpg$ /icons/$1.gif [PT]
</highlight>
<p>
<p>Considérons la règle suivante :</p>
-<highlight language="config">
-RewriteRule /pages/(.+) /page.php?page=$1 [QSA]
-</highlight>
+<highlight language="config">RewriteRule /pages/(.+) /page.php?page=$1
+[QSA]</highlight>
<p>Avec le drapeau [QSA], une requête pour
<code>/pages/123?one=two</code> sera réécrite en
l'exemple suivant, nous ne voulons exécuter la règle <directive
module="mod_rewrite">RewriteRule</directive> que si l'URI demandé ne
correspond pas à un fichier existant.</p>
-
<highlight language="config">
# La requête concerne-t-elle un fichier qui n'existe pas ?
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*\.html) docs.php?$1
</highlight>
+
+
<p>Cette technique trouve son utilité dans le fait qu'une directive
<directive module="mod_rewrite">RewriteCond</directive> ne s'applique
qu'à la règle qui la suit immédiatement. Ainsi, si vous voulez
# Est-ce que le fichier existe ?
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
-<!-- A traduire pour qui y comprend quelquechose -->
-# Create an if-then-else construct by skipping 3 lines if we meant to go to the "else" stanza.<br />
+# Create an if-then-else construct by skipping 3 lines if we meant to go to the "else" stanza.
RewriteRule .? - [S=3]
# Si le fichier existe, alors :
- RewriteRule (.*\.gif) images.php?$1
- RewriteRule (.*\.html) docs.php?$1
- # Skip past the "else" stanza.
- RewriteRule .? - [S=1]
+RewriteRule (.*\.gif) images.php?$1
+ RewriteRule (.*\.html) docs.php?$1
+ # Skip past the "else" stanza.
+ RewriteRule .? - [S=1]
# ELSE...
- RewriteRule (.*) 404.php?file=$1
+RewriteRule (.*) 404.php?file=$1
# END
</highlight>
avec le type MIME correct en se basant sur le nom du fichier :</p>
<highlight language="config">
-# Les fichiers dont le nom contient 'IMG' sont des images jpg.<br />
+# Les fichiers dont le nom contient 'IMG' sont des images jpg.
RewriteRule IMG - [T=image/jpg]
</highlight>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1332592 -->
+<!-- English Revision : 1332592 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<li><var>[drapeaux]</var>: options affectant la requête réécrite.</li>
</ol>
-<p>Le <var>Modèle</var> est toujours une <a href="#regex">expression
-rationnelle</a> comparée au chemin de l'URL de la requête entrante (la
+<p>Le <var>Modèle</var> est une <a href="#regex">expression
+rationnelle</a>. Au sein de la première règle de réécriture, ou jusqu'à
+ce qu'une substitution survienne, elle est comparée au chemin de
+l'URL de la requête entrante (la
partie située après le nom d'hôte mais avant tout point d'interrogation
qui indique le début d'une chaîne de paramètres de
requête) ou, dans un contexte de répertoire, au chemin de la
-requête relativement au répertoire pour lequel la règle est définie..</p>
+requête relativement au répertoire pour lequel la
+règle est définie. Lorsqu'une substitution a eu lieu, les
+règles suivantes effectuent leurs comparaisons par rapport à la valeur
+substituée.</p>
<p class="figure">
<img src="../images/syntax_rewriterule.png"
<dl>
<dt>Un chemin complet du système de fichiers vers une ressource</dt>
<dd>
-<example>
+<highlight language="config">
RewriteRule ^/jeux /usr/local/jeux/web
-</example>
+</highlight>
<p>Ceci peut faire correspondre une requête à toute localisation voulue de
votre système de fichiers, un peu comme la directive <directive
module="mod_alias">Alias</directive>.</p>
<dt>Un chemin web vers une ressource</dt>
<dd>
-<example>
+<highlight language="config">
RewriteRule ^/foo$ /bar
-</example>
+</highlight>
<p>Si la directive <directive module="core">DocumentRoot</directive> a
pour valeur <code>/usr/local/apache2/htdocs</code>, cette règle va faire
correspondre les requêtes pour <code>http://example.com/foo</code> au
<dt>Une URL absolue</dt>
<dd>
-<example>
+<highlight language="config">
RewriteRule ^/produits/vues$ http://site2.example.com/voirproduits.html [R]
-</example>
+</highlight>
<p>Ceci informe le client qu'il doit effectuer une nouvelle requête vers
l'URL spécifiée.</p>
</dd>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1328589:1330881 (outdated) -->
+<!-- English revision : 1330881 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
hyperliens pleinement qualifiés (car vous devez modifier le schéma de l'URL).
Cependant, à l'aide du module <module>mod_rewrite</module>, vous pouvez
manipuler des hyperliens relatifs, pour obtenir le même effet.</p>
- <example>
- RewriteEngine on<br />
- RewriteRule ^/(.*)_SSL$ https://%{SERVER_NAME}/$1 [R,L]<br />
- RewriteRule ^/(.*)_NOSSL$ http://%{SERVER_NAME}/$1 [R,L]
- </example>
+ <highlight language="config">
+RewriteEngine on
+RewriteRule ^/(.*)_SSL$ https://%{SERVER_NAME}/$1 [R,L]
+RewriteRule ^/(.*)_NOSSL$ http://%{SERVER_NAME}/$1 [R,L]
+ </highlight>
<p>Ce jeu de règles rewrite vous permet d'utiliser des hyperliens de la
forme <code><a href="document.html_SSL"></code> pour passer en HTTPS
-keyout server.key</strong></code><br />
Ces fichiers seront utilisés comme suit dans votre
<code>httpd.conf</code> :
- <pre>
- SSLCertificateFile /chemin/vers/server.crt
- SSLCertificateKeyFile /chemin/vers/server.key
- </pre>
+ <highlight language="config">
+SSLCertificateFile /path/to/this/server.crt
+SSLCertificateKeyFile /path/to/this/server.key
+ </highlight>
</li>
<li>Il est important de savoir que le fichier <code>server.key</code> n'a
<em>pas</em> de mot de passe. Pour ajouter un mot de passe à la clé, vous
<li>Vous devez maintenant disposer de deux fichiers :
<code>server.key</code> et <code>server.crt</code>. Ils sont précisés dans
votre fichier <code>httpd.conf</code> comme suit :
- <pre>
- SSLCertificateFile /chemin/vers/server.crt
- SSLCertificateKeyFile /chemin vers/server.key
- </pre>
+ <highlight language="config">
+SSLCertificateFile /path/to/this/server.crt
+SSLCertificateKeyFile /path/to/this/server.key
+ </highlight>
Le fichier <code>server.csr</code> n'est plus nécessaire.
</li>
(sur le port 443). Mais dans ce cas, vous devez définir le numéro de port
non-SSL à l'aide de la directive NameVirtualHost dans ce style :</p>
- <example>
+ <highlight language="config">
NameVirtualHost 192.168.1.1:80
- </example>
+ </highlight>
<p>il existe d'autres solutions alternatives comme :</p>
ou l'envoi de messages de notification de fermeture de session SSL aux
clients MSIE. Pour cela, vous pouvez utiliser la directive suivante
dans votre section d'hôte virtuel avec support SSL :</p>
- <example>
- SetEnvIf User-Agent "MSIE [2-5]" \<br />
- nokeepalive ssl-unclean-shutdown \<br />
- downgrade-1.0 force-response-1.0
- </example>
+ <highlight language="config">
+SetEnvIf User-Agent "MSIE [2-5]" \
+ nokeepalive ssl-unclean-shutdown \
+ downgrade-1.0 force-response-1.0
+ </highlight>
<p>En outre, certaines versions de MSIE ont des problèmes avec des
algorithmes de chiffrement particuliers. Hélas, il n'est pas
possible d'apporter une solution spécifique à MSIE pour ces
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1328589:1330881 (outdated) -->
+<!-- English Revision : 1330881 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<p>Votre configuration SSL doit comporter au moins les directives
suivantes :</p>
-<example>
- Listen 443
- <VirtualHost *:443><br />
- <indent>
- ServerName www.example.com<br />
- SSLEngine on<br />
- SSLCertificateFile /chemin/vers/www.example.com.cert<br />
- SSLCertificateKeyFile /chemin/vers/www.example.com.key<br />
- </indent>
- </VirtualHost>
-</example>
+<highlight language="config">
+Listen 443
+<VirtualHost *:443>
+ ServerName www.example.com
+ SSLEngine on
+ SSLCertificateFile /path/to/www.example.com.cert
+ SSLCertificateKeyFile /path/to/www.example.com.key
+</VirtualHost>
+</highlight>
</section>
que le chiffrement fort ?</title>
<p>Les directives suivantes ne permettent que les
chiffrements de plus haut niveau :</p>
- <example><title>httpd.conf</title>
- SSLCipherSuite HIGH:!aNULL:!MD5<br />
- </example>
+ <highlight language="config">
+ SSLCipherSuite HIGH:!aNULL:!MD5
+ </highlight>
</section>
rapidité (le choix final sera opéré par mod_ssl, dans la mesure ou le
client les supporte) :</p>
- <example><title>httpd.conf</title>
- SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:!aNULL:!MD5<br />
- SSLHonorCipherOrder on
- </example>
+ <highlight language="config">
+SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:!aNULL:!MD5
+SSLHonorCipherOrder on
+ </highlight>
</section>
<section id="strongurl">
<module>mod_ssl</module> peut alors forcer automatiquement une
renégociation des paramètres SSL pour parvenir au but recherché.
Cette configuration peut se présenter comme suit :</p>
- <example>
- # soyons très tolérant a priori<br />
- SSLCipherSuite ALL:!aNULL:RC4+RSA:+HIGH:+MEDIUM:+LOW:+EXP:+eNULL<br />
- <br />
- <Location /strong/area><br />
- # sauf pour https://hostname/strong/area/ et ses sous-répertoires<br />
- # qui exigent des chiffrements forts<br />
- SSLCipherSuite HIGH:!aNULL:!MD5<br />
- </Location>
- </example>
+ <highlight language="config">
+# soyons très tolérant a priori
+SSLCipherSuite ALL:!aNULL:RC4+RSA:+HIGH:+MEDIUM:+LOW:+EXP:+eNULL
+
+<Location /strong/area>
+# sauf pour https://hostname/strong/area/ et ses sous-répertoires
+# qui exigent des chiffrements forts
+SSLCipherSuite HIGH:!aNULL:!MD5
+</Location>
+ </highlight>
</section>
<!-- /ciphersuites -->
le certificat de votre propre autorité de certification
(<code>ca.crt</code>), et d'authentifier les clients à l'aide de ces
certificats.</p>
- <example><title>httpd.conf</title>
- # exige un certificat client signé par le certificat de votre CA<br />
- # contenu dans ca.crt<br />
- SSLVerifyClient require<br />
- SSLVerifyDepth 1<br />
- SSLCACertificateFile conf/ssl.crt/ca.crt
- </example>
+ <highlight language="config">
+# exige un certificat client signé par le certificat de votre CA
+# contenu dans ca.crt
+SSLVerifyClient require
+SSLVerifyDepth 1
+SSLCACertificateFile conf/ssl.crt/ca.crt
+ </highlight>
</section>
<section id="arbitraryclients">
URL particulière, vous pouvez utiliser les fonctionnalités de reconfiguration
de <module>mod_ssl</module> en fonction du répertoire :</p>
- <example><title>httpd.conf</title>
- SSLVerifyClient none<br />
- SSLCACertificateFile conf/ssl.crt/ca.crt<br />
- <br />
- <Location /secure/area><br />
- SSLVerifyClient require<br />
- SSLVerifyDepth 1<br />
- </Location><br />
- </example>
+ <highlight language="config">
+SSLVerifyClient none
+SSLCACertificateFile conf/ssl.crt/ca.crt
+
+<Location /secure/area>
+SSLVerifyClient require
+SSLVerifyDepth 1
+</Location>
+ </highlight>
</section>
<section id="certauthenticate">
de données de mots de passe contenant <em>tous</em> les clients
autorisés, comme suit :</p>
- <example><title>httpd.conf</title><pre>
+ <highlight language="config">
SSLVerifyClient none
<Directory /usr/local/apache2/htdocs/secure/area>
-
SSLVerifyClient require
-SSLVerifyDepth 5
-SSLCACertificateFile conf/ssl.crt/ca.crt
-SSLCACertificatePath conf/ssl.crt
-SSLOptions +FakeBasicAuth
-SSLRequireSSL
-AuthName "Snake Oil Authentication"
-AuthType Basic
-AuthBasicProvider file
-AuthUserFile /usr/local/apache2/conf/httpd.passwd
-Require valid-user
-</Directory></pre>
- </example>
+ SSLVerifyDepth 5
+ SSLCACertificateFile conf/ssl.crt/ca.crt
+ SSLCACertificatePath conf/ssl.crt
+ SSLOptions +FakeBasicAuth
+ SSLRequireSSL
+ AuthName "Snake Oil Authentication"
+ AuthType Basic
+ AuthBasicProvider file
+ AuthUserFile /usr/local/apache2/conf/httpd.passwd
+ Require valid-user
+</Directory>
+ </highlight>
+
<p>Le mot de passe utilisé dans cet exemple correspond à la chaîne de
caractères "password" chiffrée en DES. Voir la documentation de la
>SSLRequire</directive>, comme suit :</p>
- <example><title>httpd.conf</title><pre>
+ <highlight language="config">
SSLVerifyClient none
<Directory /usr/local/apache2/htdocs/secure/area>
-
SSLVerifyClient require
SSLVerifyDepth 5
SSLCACertificateFile conf/ssl.crt/ca.crt
SSLRequireSSL
SSLRequire %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"}
-</Directory></pre>
- </example>
+</Directory>
+ </highlight>
</section>
<section id="intranet">
doivent se trouver en dehors de votre hôte virtuel HTTPS, afin qu'elles
s'appliquent à la fois à HTTP et HTTPS.</p>
- <example><title>httpd.conf</title><pre>
+ <highlight language="config">
SSLCACertificateFile conf/ssl.crt/company-ca.crt
<Directory /usr/local/apache2/htdocs>
-# En dehors de subarea, seul l'accès depuis l'intranet est autorisé
-Order deny,allow
-Deny from all
-Allow from 192.168.1.0/24
+# En dehors de subarea, seul l'accès depuis l'intranet est
+# autorisé
+ Order deny,allow
+ Deny from all
+ Allow from 192.168.1.0/24
</Directory>
<Directory /usr/local/apache2/htdocs/subarea>
# Dans subarea, tout accès depuis l'intranet est autorisé
-# mais depuis l'Internet, seul l'accès par HTTPS + chiffrement fort
- + Mot de passe
+# mais depuis l'Internet, seul l'accès par HTTPS + chiffrement fort + Mot de passe
# ou HTTPS + chiffrement fort + certificat client n'est autorisé.
# Si HTTPS est utilisé, on s'assure que le niveau de chiffrement est fort.
# Autorise en plus les certificats clients comme une alternative à
# l'authentification basique.
-SSLVerifyClient optional
-SSLVerifyDepth 1
-SSLOptions +FakeBasicAuth +StrictRequire
-SSLRequire %{SSL_CIPHER_USEKEYSIZE} >= 128
-
-# ON oblige les clients venant d'Internet à utiliser HTTPS
-RewriteEngine on
-RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.[0-9]+$
-RewriteCond %{HTTPS} !=on
-RewriteRule . - [F]
-
-# On permet l'accès soit sur les critères réseaux, soit par authentification Basique
-Satisfy any
-
-# Contrôle d'accès réseau
-Order deny,allow
-Deny from all
-Allow 192.168.1.0/24
-
-# Configuration de l'authentification HTTP Basique
-AuthType basic
-AuthName "Protected Intranet Area"
-AuthBasicProvider file
-AuthUserFile conf/protected.passwd
-Require valid-user
-</Directory></pre>
- </example>
+ SSLVerifyClient optional
+ SSLVerifyDepth 1
+ SSLOptions +FakeBasicAuth +StrictRequire
+ SSLRequire %{SSL_CIPHER_USEKEYSIZE} >= 128
+
+ # ON oblige les clients venant d'Internet à utiliser HTTPS
+ RewriteEngine on
+ RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.[0-9]+$
+ RewriteCond %{HTTPS} !=on
+ RewriteRule . - [F]
+
+ # On permet l'accès soit sur les critères réseaux, soit par authentification Basique
+ Satisfy any
+
+ # Contrôle d'accès réseau
+ Order deny,allow
+ Deny from all
+ Allow 192.168.1.0/24
+
+ # Configuration de l'authentification HTTP Basique
+ AuthType basic
+ AuthName "Protected Intranet Area"
+ AuthBasicProvider file
+ AuthUserFile conf/protected.passwd
+ Require valid-user
+</Directory>
+ </highlight>
</section>
</section>
<!-- /access control -->
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
-<!-- English Revision: 1328589:1330883 (outdated) -->
+<!-- English Revision: 1330883 -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<p>Si, par exemple, votre serveur web est configuré pour
s'exécuter en tant que :</p>
-<example>
- User www<br />
- Group webgroup<br />
-</example>
+<highlight language="config">
+User www
+Group webgroup
+ </highlight>
<p>et <program>suexec</program> se trouve à
"/usr/local/apache2/bin/suexec", vous devez exécuter les
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
-<!-- English Revision: 1304985:1333469 (outdated) -->
+<!-- English Revision : 1333469 -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<p>Dans cet exemple, toutes les requêtes sont rejetées :</p>
<example>
<title>version 2.2 :</title>
- Order deny,allow<br />
- Deny from all
+ <highlight language="config">
+Order deny,allow
+Deny from all
+ </highlight>
</example>
<example>
<title>version 2.4 :</title>
+ <highlight language="config">
Require all denied
+ </highlight>
</example>
<p>Dans cet exemple, toutes les requêtes sont acceptées :</p>
<example>
<title>version 2.2 :</title>
- Order allow,deny<br />
- Allow from all
+ <highlight language="config">
+Order allow,deny
+Allow from all
+ </highlight>
</example>
<example>
<title>version 2.4 :</title>
+ <highlight language="config">
Require all granted
+ </highlight>
</example>
<p>Dans l'exemple suivant, tous les hôtes du domaine example.org
<example>
<title>version 2.2 :</title>
- Order Deny,Allow<br />
- Deny from all<br />
- Allow from example.org
+ <highlight language="config">
+Order Deny,Allow
+Deny from all
+Allow from example.org
+ </highlight>
</example>
<example>
<title>version 2.4 :</title>
+ <highlight language="config">
Require host example.org
+ </highlight>
</example>
</section>
<directive module="mod_include">SSILegacyExprParser</directive> a
été activée pour le répertoire contenant les pages d'erreur.
</li>
+
+ <li>La fonctionnalité fournie par <code>mod_authn_alias</code>
+ dans les précédentes versions (en fait la directive
+ <directive module="mod_authn_core">AuthnProviderAlias</directive>)
+ est maintenant fournie par <module>mod_authn_core</module>.
+ </li>
</ul>
</section>
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
-<!-- English Revision: 1310494:1330883 (outdated) -->
+<!-- English Revision: 1330883 -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
module="mod_alias">Alias</directive> pour rattacher toute portion
du système de fichiers à l'arborescence du site web. Par exemple, avec</p>
-<example>Alias /docs /var/web</example>
+<highlight language="config">Alias /docs /var/web</highlight>
<p>l'URL <code>http://www.example.com/docs/dir/file.html</code>
correspondra au fichier <code>/var/web/dir/file.html</code>. La
sur les <glossary ref="regex">expressions rationnelles</glossary>.
Par exemple,</p>
-<example>ScriptAliasMatch ^/~([a-zA-Z0-9]+)/cgi-bin/(.+)
- /home/$1/cgi-bin/$2</example>
+<highlight language="config">
+ ScriptAliasMatch ^/~([a-zA-Z0-9]+)/cgi-bin/(.+) /home/$1/cgi-bin/$2
+ </highlight>
<p>fera correspondre une requête du style
<code>http://example.com/~user/cgi-bin/script.cgi</code> au chemin
<code>/home/user/public_html/file.html</code>, utilisez la directive
<code>AliasMatch</code> suivante :</p>
-<example>AliasMatch ^/upages/([a-zA-Z0-9]+)(/(.*))?$
- /home/$1/public_html/$3</example>
+<highlight language="config">
+ AliasMatch ^/upages/([a-zA-Z0-9]+)(/(.*))?$ /home/$1/public_html/$3
+ </highlight>
</section>
<section id="redirect"><title>Redirection d'URL</title>
nouveau répertoire <code>/bar/</code>, vous pouvez demander aux clients
de le requérir à sa nouvelle localisation comme suit :</p>
-<example>Redirect permanent /foo/ http://www.example.com/bar/</example>
+<highlight language="config">
+ Redirect permanent /foo/ http://www.example.com/bar/
+ </highlight>
<p>Ceci aura pour effet de rediriger tout chemin d'URL commençant par
<code>/foo/</code> vers le même chemin d'URL sur le serveur
laisser toutes les autres requêtes inchangées, utilisez la
configuration suivante :</p>
-<example>RedirectMatch permanent ^/$
- http://www.example.com/startpage.html</example>
+<highlight language="config">
+ RedirectMatch permanent ^/$ http://www.example.com/startpage.html
+ </highlight>
<p>De même, pour rediriger temporairement toutes les pages d'un site
vers une page particulière d'un autre site, utilisez ce qui suit :</p>
-<example>RedirectMatch temp .*
- http://othersite.example.com/startpage.html</example>
+<highlight language="config">
+ RedirectMatch temp .* http://othersite.example.com/startpage.html
+ </highlight>
</section>
<section id="proxy"><title>Mandataire inverse (Reverse Proxy)</title>
<code>/bar/</code> sur <code>internal.example.com</code>
et les renvoie au client comme s'ils appartenaient au serveur local.</p>
-<example>
+<highlight language="config">
ProxyPass /foo/ http://internal.example.com/bar/<br />
ProxyPassReverse /foo/ http://internal.example.com/bar/<br />
ProxyPassReverseCookieDomain internal.example.com public.example.com<br />
ProxyPassReverseCookiePath /foo/ /bar/
-</example>
+</highlight>
<p>La directive <directive module="mod_proxy">ProxyPass</directive> configure
le serveur pour rapatrier les documents appropriés, alors que la directive
d'utres contenus) situés dans la page au moment où elle est envoyée au
client en utilisant le module <module>mod_substitute</module>.</p>
-<example>
+<highlight language="config">
Substitute s/internal\.example\.com/www.example.com/i
-</example>
+</highlight>
<p>Le module <module>mod_proxy_html</module> rend possible une réécriture plus
élaborée des liens en HTML et XHTML. Il permet de créer des listes