<-
Apache > HTTP 服務器 > 文檔 > 版本 2.4

Apache 的處理器

可用語言:  en  |  es  |  fr  |  ja  |  ko  |  tr  |  zh-cn 

此翻譯可能過期。要了解最近的更改,請閱讀英文版。

本頁描述 Apache 處理器的用法。

Support Apache!

參見

top

什么是處理器

“處理器”是當文件被調用時,Apache 要執行的動作的內部表示形式。 一般來說,每個文件都有基于其文件類型的隱式處理器。通常的文件會被 服務器簡單處理,但是某些文件類型會被分別“處理”。

處理器也可以被基于擴展名或位置來明確配置。它們都很有用,這不僅 因為它是優雅的方案,而且還允許類型處理器關聯到文件 (參見文件與多個擴展名)。

處理器可以編譯到服務器中,或者包含在模塊中,它們還可以被 Action 指令增加。標準發行版中內置的處理器有:

top

例子

使用 CGI 腳本修改靜態內容

下面的指令將會使具有html擴展名的文件,觸發 CGI 腳本footer.pl的執行。

Action add-footer /cgi-bin/footer.pl
AddHandler add-footer .html

于是 CGI 負責發送請求的文檔(PATH_TRANSLATED 環境變量指向它),按照需要作出 and making whatever modifications or additions are desired.

含有 HTTP 頭的文件

下面的指令會啟用 send-as-is 處理器,用于包含自己的 HTTP 的文件。不管什么擴展名, 所有位于 /web/htdocs/asis/ 目錄的文件會被 send-as-is 處理器處理。

<Directory /web/htdocs/asis>
SetHandler send-as-is
</Directory>

top

對程序員的說明

為了實現處理器特性,增加了需要使用的 Apache API。 特別的,結構 request_rec 增加了新成員:

char *handler

如果你想要模塊實現處理器,只需要在在處理請求,調用 invoke_handler 之前,將 r->handler 指向處理器名稱。處理器的實現與以前一樣,只是用處理器名稱取代了內容類型。 雖然不是必要,處理器的命名約定是使用破折號分割的單詞,沒有斜杠,從而不侵入媒體類型名稱空間。

可用語言:  en  |  es  |  fr  |  ja  |  ko  |  tr  |  zh-cn 

top

評論

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.
白小姐透特期期