Apache HTTP Server Version 1.3Apache's Handler UseWhat is a HandlerA "handler" is an internal Apache representation of the action to be performed when a file is called. Generally, files have implicit handlers, based on the file type. Normally, all files are simply served by the server, but certain file typed are "handled" separately. For example, you may use a type of "application/x-httpd-cgi" to invoke CGI scripts. Apache 1.1 adds the additional ability to use handlers explicitly. Either based on filename extensions or on location, these handlers are unrelated to file type. This is advantageous both because it is a more elegant solution, but it also allows for both a type and a handler to be associated with a file (See also Files with Multiple Extensions) Handlers can either be built into the server or to a module, or they can be added with the Action directive. The built-in handlers in the standard distribution are as follows:
DirectivesAddHandlerSyntax: AddHandler handler-name extension extension...Context: server config, virtual host, directory, .htaccess Override: FileInfo Status: Base Module: mod_mime Compatibility: AddHandler is only available in Apache 1.1 and later
AddHandler maps the filename extensions extension to the
handler handler-name. This mapping is added to any already
in force, overriding any mappings that already exist for the same
extension.
For example, to activate CGI scripts
with the file extension "
AddHandler cgi-script cgi
Once that has been put into your srm.conf or httpd.conf file, any
file containing the " See also: Files with multiple extensions SetHandlerSyntax: SetHandler handler-nameContext: directory, .htaccess Status: Base Module: mod_mime Compatibility: SetHandler is only available in Apache 1.1 and later.
When placed into an
SetHandler imap-file
Another example: if you wanted to have the server display a status
report whenever a URL of
<Location /status>
SetHandler server-status
</Location>
Programmer's NoteIn order to implement the handler features, an addition has been
made to the Apache API that you may wish to
make use of. Specifically, a new record has been added to the
char *handler
If you wish to have your module engage a handler, you need only to
set r->handler to the name of the handler at any time
prior to the invoke_handler stage of the
request. Handlers are implemented as they were before, albeit using
the handler name instead of a content type. While it is not
necessary, the naming convention for handlers is to use a
dash-separated word, with no slashes, so as to not invade the media
type name-space.
Apache HTTP Server Version 1.3 |