[APACHE DOCUMENTATION]

Apache HTTP Server Version 1.3

Module mod_setenvif

Ce module est implémenté dans le fichier mod_setenvif.c, et est compilé par défaut. Il permet de définir des variables d'environnement sur la base d'attributs de la requête.

Résumé

Le module mod_setenvif vous permet de définir des variables d'environnement suivant différents aspects de la requête détectés au moyen d'expressions régulières. Ces variables d'environnement pourront être utilisées dans d'autres parties du serveur pour décider des actions à exécuter.

Directives


Directive : BrowserMatch

Syntaxe : BrowserMatch regex envar[=valeur] [...]
Défaut : Aucun
Contexte : configuration serveur
Surcharge : Aucune
Statut : Base
Module: mod_setenvif
Compatibilité : A partir de la version 1.2 d'Apache

La directive BrowserMatch définit des variables d'environnement sur la base du contenu du champ d'en-tête HTTP User-Agent: de la requête. Le premier argument est une rexpression régulière POSIX.2 étendue (similaire à celles utilisées pour les fonctions de la famille egrep()). Le reste des arguments donne la liste des variables à définir, aisni que des valeurs optionnelles pour les initialiser. Les formes acceptées pour ces variables sont :

  1. nomVariable, ou
  2. !nomVariable, ou
  3. nomVariable=valeur

La première forme définit la variable et lui attribue une valeur initiale de "1". La seconde supprimera une variable déjà définie auparavent, la troisième définira la variable au besoin l'initialisera à la valeur mentionnée. Si le contenu d'un champ User-Agent: correspond à plusieurs directives, les variables d'environnement seront combinées, et seront crées ou modifiées en fonction de l'ordre dans lequel les directives qui les manipulent apparaissent dans les fichiers de configuration. Ainsi des directives postérieures peuvent surcharger l'action de directives antérieures.

Par exemple :

BrowserMatch ^Mozilla forms jpeg=yes browser=netscape
BrowserMatch "^Mozilla/[2-3]" tables agif frames javascript
BrowserMatch MSIE !javascript

Notez que lexpression régulière est appliquée en tenant compte de la casse. Pour un test sans casse, voir la directive BrowserMatchNoCase.

Les directives BrowserMatch et BrowserMatchNoCase sont des cas particuliers des directives SetEnvIf et SetEnvIfNoCase. Les deux lignes suivantes ont exactement le même effet :

BrowserMatchNoCase Robot is_a_robot
SetEnvIfNoCase User-Agent Robot is_a_robot


Directive : BrowserMatchNoCase

Syntaxe : BrowserMatchNoCase regex envar[=valeur] [...]
Défaut : Aucun
Contexte : configuration serveur
Surcharge : Aucune
Statut : Base
Module : mod_setenvif
Compatibilité : A partir de la version 1.2 d'Apache.

La directive BrowserMatchNoCase est sémantiquement identique à la directive BrowserMatch. Elle applique cependant l'expression régulière sans tenir compte de la casse. Par exemple :

BrowserMatchNoCase mac platform=macintosh
BrowserMatchNoCase win platform=windows

Les directives BrowserMatch et BrowserMatchNoCase sont des cas particuliers des directives SetEnvIf et SetEnvIfNoCase. Les deux lignes suivantes ont le même effet :

BrowserMatchNoCase Robot is_a_robot
SetEnvIfNoCase User-Agent Robot is_a_robot


Directive : SetEnvIf

Syntaxe : SetEnvIf attribut regex envar[=valeur] [...]
Défaut : Aucun
Contexte : configuration serveur
Surcharge : Aucun
Statut : Base
Module : mod_setenvif
Compatibilité : SetEnvIf n'est disponible qu'à partir de la version 1.3 d'Apache

La directive SetEnvIf permet de définir plus généralement des variables d'environnement sur des attributs de la requête. Ces attributs peuvent être les valeurs de divers champs d'en-tête HTTP de la requête (voir RFC2068 pour plus d'informations sur ces champs ; vous pouvez aussi consulter la version française de la

  • Remote_Host - le nom d'hôte de l'émetteur (si disponible)
  • Remote_Addr - l'adresse IP du client émetteur
  • Remote_User - le nom d'utilisateur authentifié (si disponible)
  • Request_Method - la méthode utilisée dans la requête, à savoir, GET, POST, etc.)
  • Request_URI - la portion d'URL suivant le schema d'authentification et le nom de serveur

    Parmi les champs d'en-tête HTTP, les plus couramment utilisés sont Host:, User-Agent:, et Referer:.

    Exemple:

    SetEnvIf Request_URI "\.(gif)|(jpg)|(xbm)$" object_is_image
    SetEnvIf Referer www\.mondomaine\.com intra_site_referral
    

    La première ligne définit la variable d'environnement object_is_image si la requête portait sur un fichier graphique, et la seconde une variable intra_site_referral si la page contenant le lien activé faisait partie de l'espace Intranet, dans le site www.mondomaine.com.


    Directive : SetEnvIfNoCase

    Syntaxe : SetEnvIfNoCase attribut regex envar[=valeur] [...]
    Défaut : Aucun
    Contexte : configuration serveur
    Surcharge : Aucune
    Statut : Base
    Module : mod_setenvif
    Compatibilité : SetEnvIfNoCase n'est disponible qu'à partir de la version 1.3 d'Apache.

    La directive SetEnvIfNoCase est sémantiquement identique à la directive SetEnvIf. Elle applique cependant l'expression régulière sans tenir compte de la casse.

    Par exemple :

    SetEnvIfNoCase Host Apache\.Org site=apache

    Ceci définira la variable d'environnement site à la valeur apache si la requête HTTP contient un champ d'en-tête Host: contient Apache.Org, apache.org, ou toute autre mélange de casse haute et basse.


    Apache HTTP Server Version 1.3

    Index Home

    Adaptation française © Valery Fremaux / EISTI 1998