Serveur Apache HTTP Version 2.0
Ce document décrit l'utilisation des gestionnaires (Handlers) Apache.
Modules Apparentés | Directives Apparentées |
---|---|
Un Gestionnaire "handler" est une représentation interne à Apache, qui décrit quoi faire quand un fichier est appelé. De manière générale, les fichiers disposent d'un gestionnaire implicite en fonction de leurs types. Le fonctionnement standard est de simplement servir le fichier tel qu'il est demandé, mais certains types de fichiers peuvent être gérés différemment.
Depuis Apache 1.1, il est possible de forcer l'utilisation des gestionnaires. Ils peuvent être spécifiés pour des fichiers présentant une certaine extension ou présents dans un certain répertoire, et peuvent être utilisés indépendamment des types des fichiers. Cette technique est avantageuse, d'abord parce que plus élégante, mais aussi parce qu'on peut ainsi associer un type de fichier et un gestionnaire à un fichier. (Voir aussi : Fichiers à Extensions Multiples.)
Les gestionnaires peuvent être intégrés au serveur, ou inclus
dans un module, ou encore être configurés au moyen de la directive
Action
. Les
gestionnaires fournis par défaut dans la distribution d'Apache
se présentent comme suit :
default_handler()
qui est le
gestionnaire utilisé par défaut pour gérer les contenus
statiques. (noyau d'Apache)mod_asis
)mod_cgi
)mod_imap
)mod_info
)mod_status
)mod_negotiation
)Les directives ci-après provoquent l'exécution du script
CGI footer.pl
à chaque requête de fichier
présentant l'extension html
.
Action add-footer /cgi-bin/footer.pl
AddHandler add-footer .html
Le travail du script CGI est alors d'envoyer le document
demandé (désigné au moyen de la variable d'environnement
PATH_TRANSLATED
) en lui faisant subir au préalable
les transformations désirées.
Les directives ci-après activent le gestionnaire
send-as-is
, utilisé pour gérer les fichiers
qui contiennent leurs propres en-têtes HTTP. Tous les fichiers
contenus dans le répertoire /web/htdocs/asis/
seront traités par le gestionnaire send-as-is
,
sans tenir compte de leurs extensions.
<Directory /web/htdocs/asis>
SetHandler send-as-is
</Directory>
L'API d'Apache a été modifiée
lors de l'implémentation des gestionnaires ; cette modification
peut se révéler intéressante. Un nouvel enregistrement a été ajouté
à la structure request_rec
:
char *handler
Pour qu'un module utilise un gestionnaire, il suffit d'affecter
r->handler
avec le nom du gestionnaire avant
l'étape invoke_handler
de la requête. Les
gestionnaires fonctionnent comme auparavant, bien que leurs noms
soient nécessaires au lieu d'un type de contenu. Bien qu'elle ne
soit pas nécessaire, la convention de nommage des gestionnaires
demande l'utilisation de mots séparés par des tirets, ne contenant
aucun slash, afin de ne pas interférer avec l'espace de nommage
des types de médias.