本文档描述了Apache处理程序的使用。
相关模块 | 相关指令 |
---|---|
“处理程序”是调用文件时要执行的动作的内部Apache表示形式。通常,文件具有基于文件类型的隐式处理程序。通常,所有文件仅由服务器提供服务,但是某些文件类型将单独“处理”。
还可以基于文件扩展名或位置来显式配置处理程序,而与文件类型无关。这是有利的,这既因为它是一种更优雅的解决方案,又因为它还允许将类型和处理程序都与文件关联。(另请参见具有多个扩展名的文件。)
处理程序可以内置在服务器中或包含在模块中,也可以与Action
指令一起添加。标准发行版中的内置处理程序如下:
default_handler()
,这是默认情况下用于处理静态内容的处理程序。(核心)mod_asis
)mod_cgi
)mod_imagemap
)mod_info
)mod_status
)mod_negotiation
)以下指令将导致对具有html
扩展名的文件的请求触发footer.pl
CGI脚本的启动
。
Action add-footer /cgi-bin/footer.pl AddHandler add-footer .html
然后,CGI脚本负责发送最初请求的文档(由PATH_TRANSLATED
环境变量指向
)并进行所需的修改或添加。
以下指令将启用
send-as-is
处理程序,该处理程序用于包含其自己的HTTP标头的文件。该/web/htdocs/asis/
目录中的所有文件
都将由处理send-as-is
程序处理,无论其文件扩展名如何。
<Directory "/web/htdocs/asis"> SetHandler send-as-is </Directory>
为了实现处理程序功能,您可能希望使用Apache API。具体来说,新记录已添加到request_rec
结构中:
char *handler
如果希望让模块使用处理程序,则只需
在请求阶段r->handler
之前的任何时间将其设置为处理程序的名称invoke_handler
。处理程序的实现与以前一样,尽管使用处理程序名称而不是内容类型。虽然没有必要,但处理程序的命名约定是使用短划线分隔的单词(不带斜杠),以免侵害媒体类型名称空间。