ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# Apache模块 mod_actions | [说明](#calibre_link-11) | 基于媒体类型或请求方法,为执行CGI脚本而提供 | | --- | --- | | [状态](#calibre_link-12) | 基本(B) | | [模块名](#calibre_link-13) | actions_module | | [源文件](#calibre_link-14) | mod_actions.c | ### 概述 此模块有两个指令。`Action`指令让你可以在对特定[MIME类型](#calibre_link-223 "see glossary")文件请求的时候运行CGI脚本。`Script`指令让你能够在使用特定请求方法的时候运行CGI脚本。这使得执行处理文件的CGI脚本更加容易。 ## Action 指令 | [说明](#calibre_link-18) | 针对特定的处理器或内容类型激活一个CGI脚本 | | --- | --- | | [语法](#calibre_link-19) | `Action action-type cgi-script [virtual]` | | [作用域](#calibre_link-20) | server config, virtual host, directory, .htaccess | | [覆盖项](#calibre_link-66) | FileInfo | | [状态](#calibre_link-21) | 基本(B) | | [模块](#calibre_link-22) | mod_actions | | [兼容性](#calibre_link-137) | `virtual`修饰词仅在 Apache 2.1 及之后的版本中可用 | 这条指令添加一个当action-type被请求触发时会执行cgi-script的动作。cgi-script是一个URL路径,指向一个已经被用`ScriptAlias`或`AddHandler`指令指定为CGI脚本的资源。action-type可以是一个[处理器](#calibre_link-253)或一个[MIME内容类型](#calibre_link-223 "see glossary")。它使用标准的`PATH_INFO`和`PATH_TRANSLATED`环境变量来发送此URL和被请求内容的文件路径。用于该请求的处理器通过`REDIRECT_HANDLER`变量传递。 ### 例子 ``` # 对特定MIME内容类型文件的请求 Action image/gif /cgi-bin/images.cgi # 对于具有特定扩展名的文件 AddHandler my-file-type .xyz Action my-file-type /cgi-bin/program.cgi ``` 在第一个例子中,对于所有对MIME类型"`image/gif`"的请求都将被指定的CGI脚本`/cgi-bin/images.cgi`进行处理。 在第二个例子中,对于所有对具有扩展名"`.xyz`"的文件的请求都将被指定的CGI脚本`/cgi-bin/program.cgi`进行处理。 可选的`virtual`修饰词关闭了对所请求的文件是否真实存在的检查。这个修饰词很有用,比如希望将`Action`使用于虚拟位置的时候: ### 示例 ``` <Location /news> SetHandler news-handler Action news-handler /cgi-bin/news.cgi virtual </Location> ``` ### 参见 * `AddHandler` ## Script 指令 | [说明](#calibre_link-18) | 对特定的请求方法激活一个CGI脚本 | | --- | --- | | [语法](#calibre_link-19) | `Script method cgi-script` | | [作用域](#calibre_link-20) | server config, virtual host, directory | | [状态](#calibre_link-21) | 基本(B) | | [模块](#calibre_link-22) | mod_actions | 该指令添加一个当文件被method方法请求时会激活脚本cgi-script的动作。cgi-script是一个URL路径,指向一个已用`ScriptAlias`或`AddHandler`指令指定为CGI脚本的资源。它使用标准的`PATH_INFO`和`PATH_TRANSLATED`环境变量来发送此URL和被请求内容的文件路径。 可以使用任意的方法名称。**方法名大小写敏感**,因此 `Script PUT` 和 `Script put` 具有完全不同的结果。 注意,`Script`命令只定义了默认的动作。如果一个CGI脚本或其他能够内部处理此请求的资源被调用,就将这样做。同时注意对应`GET`方法的脚本只有在提供了查询参数的时候才会被调用(例如:"foo.html?hi")。否则,该请求将被正常处理。 ### 例子 ``` # <ISINDEX>风格的搜索 Script GET /cgi-bin/search # A CGI PUT 处理器 Script PUT /~bob/put.cgi ```