Serveur HTTP Apache Version 2.5
Ce document décrit l'utilisation des gestionnaires d'Apache (handlers).
Modules Apparentés | Directives Apparentées |
---|---|
Un "gestionnaire" est une représentation interne à Apache de l'action qui doit être entreprise quand un fichier est appelé. En général, les fichiers ont des gestionnaires implicites, basés sur le type du fichier. Normalement, tous les fichiers sont traités simplement par le serveur, mais certains types de fichiers sont "gérés" séparément.
Les gestionnaires peuvent aussi être configurés explicitement, soit en fonction des extensions des noms de fichier, soit en fonction du chemin du fichier, sans faire référence au type de fichier. Ceci a le double avantage d'être une solution plus élégante, et aussi d'autoriser à associer à la fois un type et un gestionnaire avec un fichier. (Voir aussi Fichiers avec extensions multiples.)
Les gestionnaires peuvent être soit partie intégrante
du serveur ou inclus dans un module, soit ajoutés à l'aide de la directive
Action
. Les gestionnaires
intégrés dans la distribution standard se présentent comme suit :
default_handler()
, qui est le gestionnaire utilisé par
défaut pour traiter les contenus statiques. (core)mod_asis
)mod_cgi
)mod_imagemap
)mod_info
)mod_status
)mod_negotiation
)Les directives suivantes vont faire en sorte que les requêtes pour
des fichiers possédant une extension html
déclenchent
l'exécution du script CGI footer.pl
.
Action add-footer /cgi-bin/footer.pl AddHandler add-footer .html
À ce moment-là, le script CGI se charge d'envoyer le document
initialement demandé (référencé par la variable d'environnement
PATH_TRANSLATED
) et d'effectuer tous ajout ou modification
voulus.
Les directives suivantes vont activer le gestionnaire
send-as-is
, qui est utilisé pour les fichiers qui possèdent
leurs propres en-têtes HTTP. Tous les fichiers situés dans le répertoire
/web/htdocs/asis/
seront traités par le gestionnaire
send-as-is
, sans tenir compte de l'extension
de leur nom de fichier.
<Directory "/web/htdocs/asis"> SetHandler send-as-is </Directory>
Pour implémenter la fonctionnalité des gestionnaires, l'
API Apache a fait l'objet d'un ajout
que vous pourriez être amené à utiliser.
Plus précisément, un nouvel enregistrement a été ajouté à la structure
request_rec
:
char *handler
Si vous voulez que votre module déclenche l'utilisation d'un
gestionnaire, il vous suffit de définir r->handler
avec
le nom du gestionnaire à n'importe quel moment avant l'étape
invoke_handler
de la requête. Les gestionnaires sont implémentés comme auparavant,
quoique l'on utilise le nom du gestionnaire à la place d'un type
de contenu. Bien que ce ne soit pas obligatoire, la convention de nommage
des gestionnaires stipule l'utilisation d'un mot composé séparé par des
tirets, sans slashes, afin de ne pas interférer avec l'espace de nommage
des types de média.