
"handler"はファイルがコールされたとき実行されるアクションの内部的なApacheの表示です。一般的にファイルはファイルタイプをベースとした、暗に示された取り扱いをされます。普通は全てのファイルは単にサーバによって提供されます。しかし、あるファイルタイプは別に取り扱われます。例えばあなたはCGIスクリプトを実行するために"application/x-httpd-cgi"タイプを使用するかもしれません。
Apache 1.1は明確にhandlersを使用する付加的な能力が加わりました。ファイルの拡張子かロケーションをベースとしたこれらのhandlersはファイルタイプとは関連があり せん。これは両方に都合が良いです。なぜならそれはより簡潔なソリューションだから す。しかし、またファイルと関連づけることをタイプとhandlerの両方に許可します。
Handlersはサーバかモジュールのどちらかに対して設定され、それらは
AddHandler命令は特定の拡張子を持つファイルをhandler-nameと結び付けます。 例えば、拡張子が.cgiのCGIスクリプトを実行できるようにするには、以下の様に定義します。
AddHandler cgi-script cgi
一度 srm.conf や httpd.conf ファイルを置き換えてしまうと".cgi"で終わっているファイルは CGI プログラムとして扱われます。
.htaccessファイルあるいは<Directory>あるいは<Location>セクションで設定されるとこの命令はhandler-nameで与えられた取り扱い方法によって一致するすべてのファイルを強制的に解析する。例えばもしあなたが完全にイメージマップルールファイルとして解析されるように命令を設定したいなら、拡張子に関わらずそのディレクトリ内の.htaccessファイルに次のように設定します。
SetHandler imap-file
もう一つの例:もしあなたがhttp://servername/statusのURLが呼ばれたときはいつでもレポートのステータスををサーバにディスプレイしたいなら、次のようにaccess.confを設定してください。
<Location /status>
SetHandler server-status
</Location>
handlerの特徴を実行するために、あなたが使用したいApache APIに一部の追加が作られました。特に新しいレコードがrequest_rec構成に加えられました。:
char *handler
もしあなたがhandlerを取り扱うモジュールを持ちたいなら、リクエストのinvoke_handlerより先にhandlerの名前にr->handlerを設定することだけが必要です。Handlersはコンテントタイプの代わりにハンドラーネームの使用にもかかわらす、前のままで実施されます。それが必要でないときメディアタイプname-spaceを侵略しないように、handlersに対するネーミングルールがスラッシュのないダッシュで分けられた単語を使用することです。
このページの情報に関わる、ご質問、お問い合わせは、 japache@infoscience.co.jpまで。