| <?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: 1673563 --> |
| <!-- French translation : Lucien GENTIS --> |
| <!-- Reviewed by : Vincent Deffontaines --> |
| |
| <!-- |
| 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. |
| --> |
| |
| <manualpage metafile="env.xml.meta"> |
| |
| <title>Apache et les variables d'environnement</title> |
| |
| <summary> |
| <p>Deux types de variables d'environnement affectent le serveur |
| HTTP Apache.</p> |
| |
| <p>Le premier type correspond aux variables d'environnement |
| contrôlées par le système d'exploitation sous-jacent et définies |
| avant le démarrage du serveur. Leurs valeurs peuvent être utilisées |
| directement dans les fichiers de configuration, et peuvent |
| éventuellement être transmises aux scripts CGI et SSI via la |
| directive PassEnv.</p> |
| |
| <p>Le second type correspond aux variables nommées appelées aussi |
| <em>variables d'environnement</em> dans lesquelles le serveur HTTP |
| Apache stocke des informations via un mécanisme spécial. Ces |
| informations peuvent servir à contrôler diverses opérations comme |
| l'enregistrement des traces ou le contrôle d'accès. On utilise aussi ces |
| variables dans le mécanisme de communication avec les programmes externes |
| comme les scripts CGI. Ce document présente différentes méthodes pour |
| manipuler et utiliser ces variables.</p> |
| |
| <p>Bien que ces variables soient référencées comme <em>variables |
| d'environnement</em>, il ne faut pas les confondre avec les variables |
| d'environnement contrôlées par le système d'exploitation sous-jacent. |
| En fait, ces variables sont stockées et manipulées dans une structure |
| interne à Apache. Elles ne deviennent de véritables variables |
| d'environnement du système d'exploitation que lorsqu'elles sont mises à la |
| disposition de scripts CGI et de scripts inclus côté serveur (SSI). Si vous |
| souhaitez manipuler l'environnement du système d'exploitation sous lequel |
| le serveur s'exécute, vous devez utiliser les mécanismes standards de |
| manipulation de l'environnement fournis par l'interpréteur de commandes |
| (shell) de votre système d'exploitation.</p> |
| </summary> |
| |
| <section id="setting"> |
| <title>Définition des variables d'environnement</title> |
| <related> |
| <modulelist> |
| <module>mod_cache</module> |
| <module>mod_env</module> |
| <module>mod_rewrite</module> |
| <module>mod_setenvif</module> |
| <module>mod_unique_id</module> |
| </modulelist> |
| <directivelist> |
| <directive module="mod_setenvif">BrowserMatch</directive> |
| <directive module="mod_setenvif">BrowserMatchNoCase</directive> |
| <directive module="mod_env">PassEnv</directive> |
| <directive module="mod_rewrite">RewriteRule</directive> |
| <directive module="mod_env">SetEnv</directive> |
| <directive module="mod_setenvif">SetEnvIf</directive> |
| <directive module="mod_setenvif">SetEnvIfNoCase</directive> |
| <directive module="mod_env">UnsetEnv</directive> |
| </directivelist> |
| </related> |
| |
| <section id="basic-manipulation"> |
| <title>Manipulations de base de l'environnement</title> |
| |
| <p>La méthode la plus élémentaire pour définir une variable |
| d'environnement au niveau d'Apache consiste à utiliser la directive |
| inconditionnelle <directive module="mod_env" |
| >SetEnv</directive>. Les variables peuvent aussi être transmises depuis |
| l'environnement du shell à partir duquel le serveur a été démarré en |
| utilisant la directive |
| <directive module="mod_env">PassEnv</directive>.</p> |
| |
| </section> |
| <section id="conditional"> |
| <title>Définitions conditionnelles en fonction des requêtes</title> |
| |
| <p>Pour plus de souplesse, les directives fournies par le module |
| <module>mod_setenvif</module> permettent de définir les |
| variables d'environnement en tenant compte des caractéristiques |
| de chaque requête. Par exemple, une |
| variable pourrait n'être définie que lorsqu'un navigateur spécifique |
| (User-Agent) a généré la requête, ou seulement quand un en-tête |
| Referer particulier est présent. La directive |
| <directive module="mod_rewrite">RewriteRule</directive> du module |
| <module>mod_rewrite</module> qui utilise l'option |
| <code>[E=...]</code> pour définir |
| les variables d'environnement apporte encore plus de souplesse.</p> |
| |
| </section> |
| <section id="unique-identifiers"> |
| <title>Identifiants uniques</title> |
| |
| <p>Finalement, le module <module>mod_unique_id</module> définit la variable |
| d'environnement <code>UNIQUE_ID</code> pour chaque requête à une valeur |
| qui est garantie unique parmi "toutes" les requêtes sous des |
| conditions très spécifiques.</p> |
| |
| </section> |
| <section id="standard-cgi"> |
| <title>Variables CGI standards</title> |
| |
| <p>En plus de l'ensemble des variables d'environnement internes à la |
| configuration d'Apache et de celles transmises depuis le shell, |
| les scripts CGI et les pages SSI |
| se voient affectés un ensemble de variables |
| d'environnement contenant des méta-informations à propos de la requête |
| comme préconisé dans la |
| <a href="http://www.ietf.org/rfc/rfc3875">spécification |
| sur les CGIs</a>.</p> |
| |
| </section> |
| <section id="caveats"> |
| <title>Quelques mises en garde</title> |
| |
| <ul> |
| <li>Les directives de manipulation de l'environnement ne permettent |
| pas de supplanter ou modifier les variables CGI standards.</li> |
| |
| <li>Lorsqu'on utilise <program>suexec</program> pour exécuter des |
| scripts CGI, l'environnement est nettoyé et réduit à un ensemble de |
| variables <em>sûres</em> avant l'exécution du script. La liste des |
| variables <em>sûres</em> est définie à la compilation dans |
| <code>suexec.c</code>.</li> |
| |
| <li>Pour des raisons de portabilité, les noms des variables |
| d'environnement ne peuvent contenir que des lettres, des chiffres, et |
| le caractère "sousligné". En outre, le premier caractère ne doit pas |
| être un chiffre. Les caractères qui ne satisfont pas à ces conditions |
| seront remplacés par un caractère "sousligné" quand ils seront |
| transmis aux scripts CGI et aux pages SSI.</li> |
| |
| <li>Les contenus d'en-têtes HTTP transmis aux scripts de type |
| CGI ou autre via des variables d'environnement constituent un |
| cas particulier (voir plus loin). Leur nom est converti en |
| majuscules et seuls les tirets sont remplacés par des |
| caractères '_' ("souligné") ; si le format du nom de l'en-tête |
| n'est pas valide, celui-ci est ignoré. Voir <a |
| href="#fixheader">plus loin</a> pour une solution de |
| contournement du problème.</li> |
| |
| <li>La directive <directive |
| module="mod_env">SetEnv</directive> s'exécute assez tard au |
| cours du traitement de la requête, ce qui signifie que des |
| directives telles que <directive |
| module="mod_setenvif">SetEnvIf</directive> et <directive |
| module="mod_rewrite">RewriteCond</directive> ne verront pas |
| les variables qu'elle aura définies.</li> |
| |
| <li>Lorsque le serveur cherche un chemin via une <glossary |
| ref="subrequest">sous-requête</glossary> interne (par exemple la |
| recherche d'un <directive |
| module="mod_dir">DirectoryIndex</directive>), ou lorsqu'il génère un |
| listing du contenu d'un répertoire via le module |
| <module>mod_autoindex</module>, la sous-requête n'hérite pas des |
| variables d'environnement spécifiques à la requête. En outre, à cause |
| des phases de l'API auxquelles <module>mod_setenvif</module> prend |
| part, les directives <directive |
| module="mod_setenvif">SetEnvIf</directive> ne sont pas évaluées |
| séparément dans la sous-requête.</li> |
| </ul> |
| </section> |
| </section> |
| <section id="using"> |
| <title>Utilisation des variables d'environnement</title> |
| |
| <related> |
| <modulelist> |
| <module>mod_authz_host</module> |
| <module>mod_cgi</module> |
| <module>mod_ext_filter</module> |
| <module>mod_headers</module> |
| <module>mod_include</module> |
| <module>mod_log_config</module> |
| <module>mod_rewrite</module> |
| </modulelist> |
| <directivelist> |
| <directive module="mod_authz_core">Require</directive> |
| <directive module="mod_log_config">CustomLog</directive> |
| <directive module="mod_access_compat">Deny</directive> |
| <directive module="mod_ext_filter">ExtFilterDefine</directive> |
| <directive module="mod_headers">Header</directive> |
| <directive module="mod_log_config">LogFormat</directive> |
| <directive module="mod_rewrite">RewriteCond</directive> |
| <directive module="mod_rewrite">RewriteRule</directive> |
| </directivelist> |
| </related> |
| |
| <section id="cgi-scripts"> |
| <title>Scripts CGI</title> |
| |
| <p>La communication d'informations aux scripts CGI constitue une des |
| principales utilisations des variables d'environnement. Comme indiqué |
| plus haut, l'environnement transmis aux scripts CGI comprend des |
| méta-informations standards à propos de la requête, en plus des |
| variables définies dans la configuration d'Apache. Pour plus de |
| détails, se référer au |
| <a href="howto/cgi.html">tutoriel CGI</a>.</p> |
| |
| </section> |
| <section id="ssi-pages"> |
| <title>Pages SSI</title> |
| |
| <p>Les documents inclus côté serveur (SSI) traités par le filtre |
| <code>INCLUDES</code> du module <module>mod_include</module>, |
| peuvent afficher les |
| variables d'environnement à l'aide de l'élément <code>echo</code>, |
| et peuvent utiliser des variables d'environnement dans les éléments |
| de contrôle de flux pour rendre certaines parties d'une page |
| conditionnelles en fonction des caractéristiques de la requête. |
| Apache fournit aussi les variables d'environnement CGI standards |
| aux pages SSI |
| comme indiqué plus haut. Pour plus de détails, se référer au |
| <a href="howto/ssi.html">tutoriel SSI</a>.</p> |
| |
| </section> |
| <section id="access-control"> |
| <title>Contrôle d'accès</title> |
| |
| <p>L'accès au serveur peut être contrôlé en fonction de la valeur de |
| variables d'environnement à l'aide des directives |
| <code>allow from env=</code> et <code>deny from env=</code>. |
| En association avec la directive |
| <directive module="mod_setenvif">SetEnvIf</directive>, ceci confère une |
| grande souplesse au contrôle d'accès au serveur en fonction des |
| caractéristiques du client. Par exemple, vous pouvez utiliser ces |
| directives pour interdire l'accès depuis un navigateur particulier |
| (User-Agent). |
| </p> |
| |
| </section> |
| <section id="logging"> |
| <title>Enregistrement conditionnel des traces</title> |
| |
| <p>Les variables d'environnement peuvent être enregistrées dans le |
| fichier de log des accès à l'aide de l'option <code>%e</code> de la |
| directive <directive module="mod_log_config">LogFormat</directive>. |
| En outre, la décision de tracer ou non les requêtes peut être prise |
| en fonction de l'état de variables d'environnement en utilisant la |
| forme conditionnelle de la directive |
| <directive module="mod_log_config">CustomLog</directive>. En |
| association avec la directive <directive module="mod_setenvif" |
| >SetEnvIf</directive>, ceci confère une grande souplesse au contrôle |
| du traçage des requêtes. Par exemple, vous pouvez choisir de ne pas |
| tracer les requêtes pour des noms de fichiers se terminant par |
| <code>gif</code>, ou encore de ne tracer que les requêtes des clients |
| n'appartenant pas à votre sous-réseau.</p> |
| |
| </section> |
| <section id="response-headers"> |
| <title>En-têtes de réponse conditionnels</title> |
| |
| <p>La directive <directive module="mod_headers">Header</directive> |
| peut se baser sur la présence ou l'absence d'une variable |
| d'environnement pour décider si un certain en-tête HTTP sera placé |
| dans la réponse au client. Ceci permet, par exemple, de n'envoyer un |
| certain en-tête de réponse que si un en-tête correspondant est présent |
| dans la requête du client.</p> |
| |
| </section> |
| |
| <section id="external-filter"> |
| <title>Activation de filtres externes</title> |
| |
| <p>Les filtres externes configurés par le module |
| <module>mod_ext_filter</module> à l'aide de la directive <directive |
| module="mod_ext_filter">ExtFilterDefine</directive> peuvent être |
| activés de manière conditionnelle en fonction d'une variable |
| d'environnement à l'aide des options |
| <code>disableenv=</code> et <code>enableenv=</code>.</p> |
| </section> |
| |
| <section id="url-rewriting"> |
| <title>Réécriture d'URL</title> |
| |
| <p>La forme <code>%{ENV:<em>variable</em>}</code> de |
| <em>TestString</em> dans la |
| directive <directive module="mod_rewrite">RewriteCond</directive> |
| permet au moteur de réécriture du module |
| <module>mod_rewrite</module> de prendre des |
| décisions conditionnées par des variables d'environnement. |
| Notez que les variables accessibles dans |
| <module>mod_rewrite</module> sans le préfixe |
| <code>ENV:</code> ne sont pas de véritables variables |
| d'environnement. Ce sont plutôt des variables spécifiques à |
| <module>mod_rewrite</module> |
| qui ne sont pas accessibles pour les autres modules.</p> |
| </section> |
| </section> |
| |
| <section id="special"> |
| <title>Variables d'environnement à usage spécial</title> |
| |
| <p>Des problèmes d'interopérabilité ont conduit à l'introduction de |
| mécanismes permettant de modifier le comportement d'Apache lorsqu'il |
| dialogue avec certains clients. Afin de rendre ces mécanismes aussi |
| souples que possible, ils sont invoqués en définissant des variables |
| d'environnement, en général à l'aide de la directive |
| <directive module="mod_setenvif">BrowserMatch</directive>, bien que les |
| directives <directive module="mod_env">SetEnv</directive> et |
| <directive module="mod_env">PassEnv</directive> puissent aussi être |
| utilisées, par exemple.</p> |
| |
| <section id="downgrade"> |
| <title>downgrade-1.0</title> |
| |
| <p>Ceci force le traitement d'une requête comme une requête HTTP/1.0 |
| même si elle a été rédigée dans un langage plus récent.</p> |
| |
| </section> |
| <section id="force-gzip"> |
| <title>force-gzip</title> |
| <p>Si le filtre <code>DEFLATE</code> est activé, cette variable |
| d'environnement ignorera les réglages accept-encoding de votre |
| navigateur et enverra une sortie compressée inconditionnellement.</p> |
| </section> |
| <section id="force-no-vary"> |
| <title>force-no-vary</title> |
| |
| <p>Cette variable entraîne la suppression de tout champ |
| <code>Vary</code> des en-têtes de la réponse avant que cette dernière |
| soit renvoyée au client. Certains clients n'interprètent pas ce champ |
| correctement, et la définition de cette variable permet de contourner |
| ce problème, mais implique aussi la définition de |
| <strong>force-response-1.0</strong>.</p> |
| |
| </section> |
| <section id="force-response"> |
| <title>force-response-1.0</title> |
| |
| <p>Cette variable force une réponse en langage HTTP/1.0 aux clients |
| qui envoient des requêtes dans le même langage. Elle fut implémentée à |
| l'origine suite à des problèmes avec les mandataires d'AOL. Certains |
| clients en langage HTTP/1.0 ne réagissent pas correctement face à une |
| réponse en langage HTTP/1.1, et cette variable peut être utilisée pour |
| assurer l'interopérabilité avec eux.</p> |
| |
| </section> |
| |
| <section id="gzip-only-text-html"> |
| <title>gzip-only-text/html</title> |
| |
| <p>Positionnée à "1", cette variable désactive le filtre en sortie |
| <code>DEFLATE</code> fourni par le module <module>mod_deflate</module> pour les |
| types de contenu autres que <code>text/html</code>. Si vous préférez |
| utiliser des fichiers compressés statiquement, |
| <module>mod_negotiation</module> évalue aussi la variable (non |
| seulement pour gzip, mais aussi pour tous les encodages autres que |
| "identity").</p> |
| </section> |
| |
| <section id="no-gzip"><title>no-gzip</title> |
| |
| <p>Quand cette variable est définie, le filtre <code>DEFLATE</code> du |
| module <module>mod_deflate</module> est désactivé, et |
| <module>mod_negotiation</module> refusera de délivrer des ressources |
| encodées.</p> |
| |
| </section> |
| |
| <section id="no-cache"><title>no-cache</title> |
| <p><em>Disponible dans les versions 2.2.12 et ultérieures d'Apache</em></p> |
| |
| <p>Lorsque cette variable est définie, |
| <module>mod_cache</module> ne sauvegardera pas de réponse |
| susceptible d'être mise en cache. Cette variable d'environnement |
| n'a aucune incidence sur le fait qu'une réponse déjà enregistrée |
| dans la cache soit utilisée ou non pour la requête courante.</p> |
| |
| </section> |
| |
| <section id="nokeepalive"> |
| <title>nokeepalive</title> |
| |
| <p>Quand cette variable est définie, la directive |
| <directive module="core">KeepAlive</directive> est désactivée.</p> |
| |
| </section> |
| |
| <section id="prefer-language"><title>prefer-language</title> |
| |
| <p>Cette variable modifie le comportement du module |
| <module>mod_negotiation</module>. Si elle contient un symbole de |
| langage (tel que <code>en</code>, <code>ja</code> |
| ou <code>x-klingon</code>), <module>mod_negotiation</module> essaie de |
| délivrer une variante dans ce langage. S'il n'existe pas de telle |
| variante, le processus normal de |
| <a href="content-negotiation.html">négociation</a> s'applique.</p> |
| |
| </section> |
| |
| <section id="redirect-carefully"> |
| <title>redirect-carefully</title> |
| |
| <p>Cette variable force le serveur à être plus prudent lors de l'envoi |
| d'une redirection au client. Elle est en général utilisée quand un |
| client présente un problème connu avec les redirections. Elle fut |
| implémentée à l'origine suite a un problème rencontré avec le logiciel |
| WebFolders de Microsoft qui ne gère pas correctement les redirections |
| vers des ressources de type répertoire via des méthodes DAV.</p> |
| |
| </section> |
| |
| <section id="suppress-error-charset"> |
| <title>suppress-error-charset</title> |
| |
| <p><em>Disponible dans les versions postérieures à 2.0.54</em></p> |
| |
| <p>Quand Apache génère une redirection en réponse à une requête client, |
| la réponse inclut un texte destiné à être affiché au cas où le client ne |
| suivrait pas, ou ne pourrait pas suivre automatiquement la redirection. |
| Habituellement, Apache marque ce texte en accord avec le jeu de caractères |
| qu'il utilise, à savoir ISO-8859-1.</p> |
| <p> Cependant, si la redirection fait référence à une page qui utilise un |
| jeu de caractères différent, certaines versions de navigateurs obsolètes |
| essaieront d'utiliser le jeu de caractères du texte de la redirection |
| plutôt que celui de la page réelle. |
| Ceci peut entraîner, par exemple, un rendu incorrect du Grec.</p> |
| <p>Si cette variable d'environnement est définie, Apache omettra le jeu de |
| caractères pour le texte de la redirection, et les navigateurs obsolètes |
| précités utiliseront correctement celui de la page de destination.</p> |
| |
| <note type="warning"> |
| <title>Note concernant la sécurité</title> |
| |
| <p>L'envoi de pages d'erreur sans spécifier un jeu de caractères peut |
| conduire à des attaques de type "cross-site-scripting" pour les |
| navigateurs qui ne respectent pas la spécification HTTP/1.1 (MSIE) et |
| tentent de déduire le jeu de caractères à partir du contenu. De tels |
| navigateurs peuvent être facilement trompés et utiliser le jeu de |
| caractères UTF-7 ; les contenus des données en entrée de type UTF-7 |
| (comme les URI de requête) ne seront alors plus protégés par les |
| mécanismes d'échappement usuels conçus pour prévenir les attaques |
| de type "cross-site-scripting".</p> |
| </note> |
| |
| </section> |
| |
| <section id="proxy"><title>force-proxy-request-1.0, proxy-nokeepalive, proxy-sendchunked, |
| proxy-sendcl, proxy-chain-auth, proxy-interim-response, proxy-initial-not-pooled</title> |
| |
| <p>Ces directives modifient le comportement protocolaire du module |
| <module>mod_proxy</module>. Voir la documentation sur |
| <module>mod_proxy</module> et <module>mod_proxy_http</module> pour plus de détails.</p> |
| </section> |
| |
| </section> |
| |
| <section id="examples"> |
| <title>Exemples</title> |
| |
| <section id="fixheader"> |
| <title>Transmission du contenu d'en-têtes non valides aux scripts |
| CGI</title> |
| |
| <p>Avec la version 2.4, Apache est plus strict avec la conversion |
| des en-têtes HTTP en variables d'environnement dans |
| <module>mod_cgi</module> et d'autres modules : dans les versions |
| précédentes, tout caractère invalide dans les noms d'en-têtes |
| était tout simplement remplacé par un caractère '_', ce qui |
| pouvait exposer à des attaques de type cross-site-scripting via |
| injection d'en-têtes (voir <a |
| href="http://events.ccc.de/congress/2007/Fahrplan/events/2212.en.html">Bogues |
| du Web inhabituelles</a>, planche 19/20).</p> |
| |
| <p>Si vous devez supporter un client qui envoie des en-têtes non |
| conformes et si ceux-ci ne peuvent pas être corrigés, il existe |
| une solution de contournement simple mettant en jeu les modules |
| <module>mod_setenvif</module> et <module>mod_headers</module>, |
| et permettant de prendre en compte ces en-têtes :</p> |
| |
| <highlight language="config"> |
| # L'exemple suivant montre comment prendre en compte un en-tête<br /> |
| # Accept_Encoding non conforme envoyé par un client. |
| # |
| SetEnvIfNoCase ^Accept.Encoding$ ^(.*)$ fix_accept_encoding=$1 |
| RequestHeader set Accept-Encoding %{fix_accept_encoding}e env=fix_accept_encoding |
| </highlight> |
| |
| </section> |
| |
| <section id="misbehaving"> |
| <title>Modification du comportement protocolaire face à des clients |
| réagissant de manière non conforme</title> |
| |
| <p>Les versions antérieures recommandaient l'ajout de ces lignes dans |
| httpd.conf pour tenir compte de problèmes connus avec certains clients. |
| Comme les clients concernés sont maintenant très peu utilisés, cet |
| ajout n'est pratiquement plus nécessaire.</p> |
| <highlight language="config"> |
| # |
| # The following directives modify normal HTTP response behavior. |
| # The first directive disables keepalive for Netscape 2.x and browsers that |
| # spoof it. There are known problems with these browser implementations. |
| # The second directive is for Microsoft Internet Explorer 4.0b2 |
| # which has a broken HTTP/1.1 implementation and does not properly |
| # support keepalive when it is used on 301 or 302 (redirect) responses. |
| # |
| BrowserMatch "Mozilla/2" nokeepalive |
| BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 |
| |
| # |
| # The following directive disables HTTP/1.1 responses to browsers which |
| # are in violation of the HTTP/1.0 spec by not being able to grok a |
| # basic 1.1 response. |
| # |
| BrowserMatch "RealPlayer 4\.0" force-response-1.0 |
| BrowserMatch "Java/1\.0" force-response-1.0 |
| BrowserMatch "JDK/1\.0" force-response-1.0 |
| </highlight> |
| |
| </section> |
| <section id="no-img-log"> |
| <title>Ne pas tracer les requêtes pour des images dans le fichier de |
| trace des accès</title> |
| |
| <p>Dans cet exemple, les requêtes pour des images n'apparaissent pas |
| dans le fichier de trace des accès. Il peut être facilement adapté pour |
| empêcher le traçage de répertoires particuliers, ou de requêtes |
| en provenance de certains hôtes.</p> |
| <highlight language="config"> |
| SetEnvIf Request_URI \.gif image-request |
| SetEnvIf Request_URI \.jpg image-request |
| SetEnvIf Request_URI \.png image-request |
| CustomLog logs/access_log common env=!image-request |
| </highlight> |
| |
| </section> |
| <section id="image-theft"> |
| <title>Prévention du "Vol d'image"</title> |
| |
| <p>Cet exemple montre comment empêcher les utilisateurs ne faisant pas |
| partie de votre serveur d'utiliser des images de votre serveur comme |
| images en ligne dans leurs pages. Cette configuration n'est pas |
| recommandée, mais elle peut fonctionner dans des circonstances bien |
| définies. Nous supposons que toutes vos images sont enregistrées dans |
| un répertoire nommé <code>/web/images</code>.</p> |
| <highlight language="config"> |
| SetEnvIf Referer "^http://www\.example\.com/" local_referal |
| # Autorise les navigateurs qui n'envoient aucune information de Referer |
| SetEnvIf Referer "^$" local_referal |
| <Directory "/web/images"> |
| Require env local_referal |
| </Directory> |
| </highlight> |
| |
| <p>Pour plus d'informations sur cette technique, voir le tutoriel sur |
| ServerWatch |
| "<a href="http://www.serverwatch.com/tutorials/article.php/1132731" |
| >Keeping Your Images from Adorning Other Sites</a>".</p> |
| </section> |
| </section> |
| </manualpage> |