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

尼雅
4.10 mod_mime 模组
这个模组包含在 mod_mime.c 文件里,而且依预设会编译进来。他提供
从文件名称决定文件型态的功能。
4.10.1 摘要
这个模组用来决定文件的 mime 型态。某些 mime 型态会指出服务器得
执行的特别程序,其它的型态则传回客户端,如此浏览器就可以适当地
处理文件。
文件的文件名称被当作基本名称的一部份,其後跟随某些副文件名,次序
如下:
base.type.language.enc
其中 type 这个副文件名设定文件的型态,型态定义在 TypesConfig 文件
以及 AddType 指令的设定中。而 language 这个副文件名设定文件的语言
,藉由 AddLanguage 指令定义。最後,enc 这个副文件名设定文件的编码
,藉由 AddEncoding 指令定义。
4.10.2 AddEncoding
语法: AddEncoding mime-enc 副文件名 副文件名
用於: server config, virtual host, directory, .htacess
需求: FileInfo
状态: 基础
模组: mod_mime
AddEncoding 这个指令以指定的编码型态把可能作为文件名称结尾的副
文件名加入文件副文件名列表。Mime-enc 是用在以该副文件名结尾的文件的
mime 编码。例如:
AddEncoding x-gzip gz
AddEncoding x-compress Z
这将会使以 .gz 结尾的文件被标记为使用 z-gzip 编码,以及 .Z 结
尾的文件被标记为使用 x-compress 编码。
4.10.3 AddLanguage
语法: AddLanguage mime-lang 副文件名 副文件名
用於: server config, virtual host, directory, .htaccess
需求: FileInfo
状态: 基础
模组: mod_mime
AddLanguage 这个指令以指定的语言把可能作为文件名称结尾的副文件名
加入文件副文件名列表。Mime-lang 是以此副文件名作为名称结尾之文件的
mime 语言,这是在所有作为编码的副文件名移除之後再决定的。例如:
AddEncoding x-compress Z
AddLanguage en .en
AddLanguage fr .fr
那麽 xxxx.ez.Z 将会被当作压缩过的英文文件。虽然内容的语言已经
报告给客户端,浏览器不太可能使用此资讯。AddLanguage 这个指令对
内容协商(content negotiation) 会更有用,这样服务器可以参考客户
端的语言回传数份文件中的一份。
4.10.4 AddType
语法: AddType mime-type 副文件名 副文件名
用於: server config, virtual host, directory, .htaccess
需求: FileInfo
状态: 基础
模组: mod_mime
AddType 这个指令以指定的内容型态把可能作为文件名称结尾的副文件名
。Mime-type 是用在以该副文件名结尾的文件的 mime 型态。这是在所有
作为编码以及语言的副文件名移除之後再决定的。例如:
AddType image/gif GIF
新的 mime 型态建议使用 AddType 指令加入而不要修改 TypesConfig
文件。
注意,与 NCSA httpd 不同,这个指令不能用来设定特殊文件的型态。
4.10.5 TypesConfig
语法: TypesConfig 文件名称
预设: TypesConfig conf/mime.types
用於: server config
状态: 基础
模组: mod_mime
TypesConfig 这个指令设定 mime 型态配置档所在的位置。文件名称是
相对於 ServerRoot 的。这个文件设定从文件扩充文件名对应内容型态的
预设列表;不建议变更这个文件。使用 AddType 指令取代对它做修改
。文件所包含的行是使用 AddType 指令的参数格式:
mime 型态 副文件名 副文件名 ...
副文件名是小写,空白行,以及('#') 起始的行会被忽略。
4.11 mod_negotiation 模组
这个模组包含在 mod_negotiation.c 文件里,而且依预设会编译进来
。它是提供作为内容协商之用的。任何文件如果它的 mime 型态之设定
为 application/x-type-map 则将会由这个模组处理。
4.11.1 摘要
内容协商,或更精确的说,内容选择,是从几份可以取用的文件中选择
最符合客户端能力的文件。这有两种实作的方法。
。明确列出包含差异之文件的型态对应(这就是使用 mime 型态
为 application/x-type-map 的文件)
。多重观点搜寻(藉由 MultiViews 选项开启),此时服务器会
执行隐含的文件名称样板对照,并从中选择结果。
型态对应
型态对应的格式与 RFC822 邮件标头相同。它包含以空白行间隔的文件
描述,以杂凑('#') 字元开头的行会被当作注解。文件描述由数种标头
记录组成;如果以空白作为连续行的开始那麽记录可以连续很多行。前
导的空白会被删除而这些行就可以连接起来。标头记录包含关键字名称
,这总是以冒号结尾,跟著一个值。在关键字与值之间,以及值的记号
之间允许空白。可以使用的标头是:
Content-Encoding:
文件的编码。目前藉由 http 只认得两种编码; compress 压缩
的文件是 x-compress 而 gzip 压缩的文件是 x-gzip 。
Content-Language:
不同的语言,使用网际网路标准语言码,像是 en 。
Content-Length:
文件的长度,单位是位元组。如果这个标头不存在,那麽就使用
该文件真实的长度。
Content-Type:
文件的 MIME 媒体型态,有选用的参数。参数以分号与媒体型态
及其它参数间隔。参数的语法是 名称=值;可以使用的参数是:
level
此值是整数,指出媒体型态版本。对於 text/html 此
预设为 2 而其它则为 0 。
qs
此值是浮点数其值在 0. 以及 1 之间。它指出差异的
‘质’。
例如:
Content-Type: image/jpeg; qs=0.8
URI:
包含这个有所差异的文件之 URL,相对於 map 文件。
多重观点
重观点搜寻是以 MultiViews 选项开启。如果该服务器接收到一个对於
/some/dir/foo 的请求而 /some/dir/foo 不存在的话,那麽服务器会
读取目录中所有名为 foo.* 的文件,并且有效地假造这些文件的型态
对应,如果客户端以名称查问它们就以相同的媒体型态以及内容编码来
指定它们。然後选择最符合客户端请求的一份,并且回传该文件。
4.11.2 LanguagePriority
语法: LanguagePriority mime-lang mime-lang
用於: server config, virtual host, directory, .htaccess
需求: FileInfo
状态: 基础
模组: mod_mime
LanguagePriority 这个指令是在处理多重观点请求时设定若有差异,
而客户端没有表示要参照何种语言的情况下的语言优先权。 mime-lang
列表是递减的顺序。例如:
LanguagePriority en fr de
请求 foo.html ,而 foo.html.fr 以及 foo.html.de 都存在,但浏
览器没有表示要参照的语言时,则回传 foo.html.fr 。
4.12 mod_userdir 模组
这个模组包含在 mod_userdir.c 文件里,而且依预设会编译进来。它
用来提供代表使用者的(user-specific) 目录。
4.12.1 UserDir
语法: UserDir directory
预设: UserDir public_html
用於: server config, virtual host
状态: 基础
模组: mod_userdir
UserDir 这个指令设定在使用者自家(home)目录里的一个真实目录,当
接收到一个对使用者文件所发出的请求时会使用这个目录。 Directory
可以是 Disable ,用来关掉这项特色,或者是一个目录的名称。如果
没有关掉,那麽以 http://myserver/~unix-username 作为开始的一个
URL 请求将会被转换成以 home-dir/directory 作为开始的文件名称,
其中 home-dir 是 unix-username 这个使用者的自家目录。
□例:
UserDir public_html
那麽一个对 http://myserver/~foo56/adir/file.html 的请求将传回
http://myserver/home/foo56/public_html/adir/file.html 文件。
※编辑: wocao (尼雅) 于 2000-05-18 11:34:58 在 [202.117.80.125] 编辑本文

你是我们最后的希望