mod_actions
メディアタイプやリクエストメソッドに応じて CGI スクリプトを実行する機能を提供
Base
mod_actions.c
actions_module

このモジュールには二つのディレクティブがあります。Action ディレクティブは特定の MIME タイプのファイルをリクエストされた場合に CGI スクリプトが実行されるようにします。Script ディレクティブはリクエストで特定のメソッドが使用されたときに CGI スクリプトが実行されるようにします。 これはファイルを処理するスクリプトの実行をずっと簡単にします。

mod_cgi
CGI による動的コンテンツ
Apache のハンドラの使用
Action
特定のハンドラやコンテントタイプに対して CGI を実行するように 設定
Action action-type cgi-script [virtual]
server config
virtual host
directory
.htaccess
FileInfo
virtual
修飾子とハンドラ渡しは Apache 2.1 で導入されました

このディレクティブは action-type がリクエストされたときに cgi-script が実行されるという動作を追加します。cgi-script は ScriptAlias や AddHandler によって CGI スクリプトに設定されたリソースへの URL-path です。 Action-type には handler か MIME コンテントタイプを指定できます。リクエストされたドキュメントの URL とファイルのパスは標準 CGI 環境変数 `PATH_INFO` と `PATH_TRANSLATED` を使って伝えられます。 特定のリクエストに対して使用されるハンドラへは、 `REDIRECT_HANDLER` 変数を使って渡せます。

# 例

# Requests for files of a particular MIME content type:
Action image/gif /cgi-bin/images.cgi
# Files of a particular file extension
AddHandler my-file-type .xyz
Action my-file-type /cgi-bin/program.cgi

最初の例では、MIME コンテントタイプが `image/gif` のファイルへのリクエストは、指定したスクリプト `/cgi-bin/images.cgi` で処理されます。

2 番目の例では、拡張子が `.xyz` のファイルへのリクエストは、指定したスクリプト `/cgi-bin/program.cgi` で処理されます。

オプションの `virtual` 修飾子を使用すると、 リクエストされたファイルが実際に存在するかどうかを検査しないようにできます。 これは例えば、Action ディレクティブをバーチャルな Location に使用したい、といった場合に便利です。

# 例

<Location /news>
SetHandler news-handler
Action news-handler /cgi-bin/news.cgi virtual
</Location>
AddHandler
Script
特定のリクエストメソッドに対して CGI スクリプトを 実行するように設定
Script method cgi-script
server config
virtual host
directory

このディレクティブは method というメソッドを使ってリクエストが行なわれたときに cgi-script を実行するという動作を追加します。 cgi-script は ScriptAlias や AddHandler によって CGI スクリプトに設定されたリソースへの URL-path です。 リクエストされたドキュメントの URL とファイルのパスは標準 CGI 環境変数 `PATH_INFO` と `PATH_TRANSLATED` を使って伝えられます。

任意のメソッド名を使用することができます。 メソッド名は大文字小文字を区別します。ですから、 `Script PUT` と `Script put` はまったく違った効果になります。

Script コマンドはデフォルトの動作を 追加するだけであることに 注意してください。もし CGI スクリプトが呼ばれたり、リクエストされた メソッドを内部で扱うことのできる他のリソースがあれば、それが行なわれます。 `GET` メソッドの Script は問合せ 引数がある場合にのみ (たとえば、foo.html?hi) 呼ばれるということにも注意してください。 そうでない場合は、リクエストは通常通り処理されます。

# 例

# For <ISINDEX>-style searching
Script GET /cgi-bin/search
# A CGI PUT handler
Script PUT /~bob/put.cgi