Apache HTTP Server 2.4 版本
相關模組 | 相關指令 |
---|---|
「處理函式」是 Apache 內部的表示方式,表示呼叫檔案時要執行的動作。一般來說,檔案都有隱含的處理函式,根據檔案類型而定。通常,所有檔案都只由伺服器提供服務,但某些檔案類型會另外「處理」。
處理函式也可以根據檔名副檔名或位置明確設定,而不論檔案檔案類型。這種方式的優點有二,一是較為靈活,二是檔案可以同時有類型 和 處理函式。(同時參閱 有多個副檔名的檔案。)
處理函式可以內建在伺服器中或包含在模組中,也可以使用 動作
指令加入。標準發行版中的內建處理函式如下:
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
如果您希望您的模組使用一個處理常式,您只需在請求的 invoke_handler
階段之前,隨時將 r->handler
設為處理常式的名稱即可。處理常式實作起來和以前一樣,只是使用處理常式名稱取代內容類型。儘管不是必要的,但處理常式的命名慣例是使用破折號分隔的字詞,沒有斜線,以免侵入媒體類型名稱空間。