Linux中文HOW TO 1---阿帕奇 HTTP 服务器参考手册(11)

尼雅
4.7 mod_imap 模组
这个模组包含在 mod_imap.c 文件里,而且依预设会编译进来。它是为
处理 .map 文件而提供的,用来代替 imagemap 这个 CGI 程序的功能
。任何含有 mime 型态为 application/x-httpd-imap 之资料的文件都
将由这个模组处理。
4.7.1 摘要
为了使用服务端剖析(server-parsed) 的影像地图(imagemap)档,你首
先必须把这个模组编译到服务器里去,并且在服务器配置档中加入下列
这一行。这个项目指出影像地图档将会以 .map 副文件名命名。
AddType application/x-httpd-imap map
4.7.2 新特色
imagemap 这个模组加入了一些先前发行的 iamgemap 程序版本不可能
达成的新特色。
。URL 参照相对於 Referer: 的资讯
。经由新的 base_uri 栏位指定预设的
。不需要 imagemap.conf 文件
。Point 参照
base_uri 选项:
map
提供预设及旧式的 map 关连参考之功能。
refer
使用 Referer: 标头资讯参照相对目前文件的 URL 。
http://whateverurl
设定 URL 的 设定使所有的参照都相对於
地图档□例
default http:/lincoln/
base_uri referer
rect .. 0,0 77,27
poly http://www.inetnebr.com/ 78,0 194,27
circle http://www.inetnebr.com/loncoln/feedback/ 195,0 305,27
rect search_index 306,0 419,27
point http://www.zyzzyva.com/ 420,0 549,27
参照你的地图档



4.8 mod_include 模组
这个模组包含在 mod_include.c 文件里,而且依预设会编译进来。它
提供给服务端剖析的 html 文件用,即所知的 SPML 文件。任何含mime
型态 text/x-server-parsed-html 或 text/x-server-parsed-html3
的文件将会由这个模组剖析,输出之结果的 mime 型态是 text/html。
4.8.1 SPML - 包含文件格式
这种文件被当作 HTML 文件剖析,并如同 SGML 的注解嵌入(embedded)
特殊的指令。指令一般的语法是:

这里的值常包括在双引号里;许多指令只允许单一个属性-值的配对。
允许使用的项目是:
config
这个指令控制各种剖析的方式。有效的属性是:
errmsg
此值是如果剖析文件发生错误时送回客户端的讯息。
sizefmt
此值是设定显示文件大小使用的格式。有效的值是使用
位元组计算的 bytes 或是以 Kb 或 Mb 中合适者显示
的 abbrev 。
timefmt
此值是列印日期时由 strftime(3) 程序库函式使用的
字串。
echo
这个指令列印内涵的参数其中之一,定义如下。如果该参数未被
设定则印出(none)。印出的任何日期都依从目前配置的 timefmt
。属性:
var
此值是要印出之参数的名称。
exec
此指令执行所给 shell 指令或 CGI 指令稿。InculdesNOEXEC
这个选项可以完全关闭这个指令。有效的属性是:
cgi
此值指定 (%-encode)URL 到 CGI 指令稿的相对路径
。如果该路径没有以(/) 作为开始,那麽它就是相对於
目前的文件。这个路径所参照的文件会被当作是个 CGI
指令稿起动,即使服务器并不认为它是个 CGI 指令稿
。然而,包含该指令稿的目录必须打开 CGI 指令稿的
支援(以 ScriptAlias 或 ExecCGI 选项打开)。
从客户端来的请求给予此指令稿 PATH_INFO 以及查询
字串(QUERY_STRING);但这无法在 URL 路径中指定。
所以在标准的 CGI 环境参数之外指令稿可以从内含的
参数取得这些资讯。
如果该指令稿回传 Location: 标头而不是一般的输出
,那麽这将会被转换成 HTML 的链结。
include virtual 这个项目应该用来参照 exec cgi 。
cmd
服务器将会以 /bin/sh 执行所给的字串。这个指令可
以取得内含的参数。
fsize
这个指令印出指定文件的大小,并依从 sizefmt 的格式指定。
属性:
file
此值是包含要剖析之文件的目录之相对路径。
virtual
此值是相对於要剖析之文件的 (%-encoded) URL 路径
。如果该路径没有以(/) 作为开始,那麽它就是相对於
目前的文件。
flastmod
这个指令印出指定文件最後修改的日期,依从 timefmt 的格式
指定。属性与 fsize 指令的属性一样。
include
这个指令插入另一份文件或文件的内容到要剖析的文件里。任何
含入的文件都依从通常的存取控制。如果包含剖析文件的目录设
有 IncludesNOEXEC 选项,而且含入该文件会起动某支程序的话
,那麽它将不会被含入;这阻止 CGI 指令稿的执行。否则 CGI
指令稿就会如同一般在指令中使用完整的 URL 指定的一样执行
,包含任何查询字串。
有个属性定义文件的位置:
file
此值是包含目前要剖析之文件的目录之相对路径。它不
能包含有 ../ 也不能是绝对路径。virtual 这个属性
永远应该用来参照这一个。
virtual
此值是相对於目前要剖析之文件的 (%-encoded)URL 。
此 URL 不能包含有动作(scheme)或主机名称,只能是
路径或选用的查询字串。如果它不是以倒斜线(/) 作为
开始那麽它就是相对於目前的文件。
URL 是由属性建构的,如果客户端请求的 URL 包含在被剖析的
输出则服务器会回传该输出。因此含入的文件可以是巢状的。
4.8.2 内含的参数
这些参数可以提供给 echo 指令,以及任何由文件起动的程序取用。
DATE_GMT
目前的格林威治日期。
DATE_LOCAL
目前当地时间区域的日期。
DOCUMENT_NAME
使用者请求之文件的文件名称(不包括目录)。
DOCUMENT_URI
使用者请求之文件的 (%-decoded)URL 路径。注意,在巢状含入
文件这种情况下,这不会是目前文件的 URL 。
LAST_MODIFIED
使用者要求之文件最後修改的日期。
4.8.3 XBitHack
语法: XBitHack 状态
语法
预设: XBitHack off
用於: server config, virtual host, directory, .htaccess
需求: Options
状态: 基础
模组: mod_include
XBitHack 这个指令控制一般 html 文件的剖析。状态可以是下列值:
off
对可执行的文件一视同仁。
on
任何设有代表使用者可执行之位元的文件将被当作是服务端剖析
的 html 文件。
full
与 on 相同但同时还测试代表群组可执行之位元。如果有设定,
那麽不会送出最後修改日期。设定这个位元使客户端以及代理者
(proxies) 可以暂存请求的结果。
4.9 mod_log_common 模组
这个模组包含在 mod_log_common.c 文件里,而且依预设会编译进来。
它提供使用一般记录档格式(Common Logfile Format) 记录对服务器之
请求的功能。
4.9.1 记录档格式
对於每个请求记录档包含个别的一行。一行是由数个以空白间隔的记
号所组成:
host ident authuser date request status bytes
如果某个记号没有值就会以短线(-) 表示。这些记号以及其代表的意义
如下:
host
客户端的完整域名,或者如果无法取得其名称的话
则记录 IP 位址
ident
如果开启 IdentityCheck 功能而且客户端机器执行有
identd 的话,那麽这会是客户端所报告的 identity
资讯。
authuser
如果请求的是密码保护的文件,那麽这会是请求中使用
的使用者识别码。
date
请求的日期以及时间,使用下列的格式:
date = [day month year:hour:minute:second zone]
day = 2*数字
month = 3*字元
year = 4*数字
hour = 2*数字
minute = 2*数字
second = 2*数字
zone = ('+' | '-') 4*数字
request
从客户端传来的请求行,以双引号(") 括起。
status
回传给客户端,三位数字的状态码。
bytes
回传给客户端的位元组数量,报包含任何标头。
4.9.2 TransferLog
语法: TransfetLog 文件-管线
预设: TransferLog logs/transfer_log
用於: server config, virtual host
状态: 基础
模组: mod_log_common
TransferLog 这个指令设定服务器记录进入之请求的文件名称。文件-
管线是这些其中之一:
一个文件名称
一个相对於 ServerRoot 的文件名称
`|' 跟随著一个指令
从标准输入接收参考记录资讯的程序。注意如果虚拟主机从主要
服务器继承 RefererLog 设定的话不会起动新的程序。
安全: 如果在此使用程序,它将会以起动 httpd 的使用者身分执行。
如果服务器由 root 起动那麽此程序就是由 root 执行;所以要确定次
程序的安全性。

你是我们最后的希望