作者:王波
如果使用了indexoptions fancyindexing选项,可以让服务器产生的目录列
表中针对各种不同类型的文档引用各种图标。而哪种文件使用哪种图标,则使用
下面的 addiconbyencoding、addiconbytype以及addicon来定义,分别依据mime 的编码、类型以及文件的后缀来判断使用何种图标。如果不能确定文档使用的图标,就使用 defaulticon定义的缺省图标。
同样,使用adddescription可以为不同类型的文档加入不同的描述。并且,
服务器还在目录下,查询使用readmename和headername定义的文件(自动加上 .
html后缀,如果没有发现,再使用.txt后缀进行搜索),如果发现了这些文件,
就在文件列表之前首先显示这些文件的内容,以使得普通目录列表具备更大的可
理解性。
indexignore让服务器在列出文件列表时忽略相应的文件, 这里使用模式配
置的方式定义文件名。
addencoding x-compress z
addencoding x-gzip gz
addencoding用于告诉一些使用压缩的mime类型,这样可以让浏览器进行解压缩操作。
addlanguage en .en
addlanguage fr .fr
addlanguage de .de
addlanguage da .da
addlanguage el .el
addlanguage it .it
languagepriority en fr de
一个html文档可以同时具备多个语言的版本,如对于file1.html文档可以具
备file1.html.en、file1.html.fr 等不同的版本,每个语言后缀必须使用 addlanguage进行定义。这样服务器可以针对不同国家的客户,通过与浏览器进行协商,发送不同的语言版本。而languagepriority 定义不同语言的优先级,以便在浏览器没有特殊要求时,按照顺序使用不同的语言版本回应对file1.html 的请求。
这个国际化的能力实际的应用并不多。
#addtype application/x-httpd-php .phtml
#addtype application/x-httpd-php-source .phps
addtype参数可以为特定后缀的文件指定mime类型,这里的设置将覆盖 mime.types中的设置。
#addhandler cgi-script .cgi
addhandler是用于指定非静态的处理类型,用于定义文档为一个非静态的文
档类型,需要进行处理,再向浏览器返回处理结果。例如上面注释中的设置是将以.cgi结尾的文件设置为cgi-script类型,那么服务器将启动这个cgi程序以进行处理。如果需要在前面aliasscript定义的路径之外执行cgi程序,就需要使用这个参数进行设置,此后以.cgi结尾的文件将被当作cgi程序执行。
在配置文件、这个目录中的.htaccess以及其上级目录的.htaccess中必须允许执行cgi程序,这需要通过options execcgi参数设定。
#addtype text/html .shtml
#addhandler server-parsed .shtml
另外一种动态进行处理的类型为server-parsed,由服务器自身预先分析网页内的标记,将标记更改为正确的html标识。由于server-parsed需要对text/html 类型的文档进行处理,因此首先定义了对应的.shtml为text/html类型。
然而要支持ssi,还要首先要在配置文件(或.htaccess)中使用options includes允许该目录下的文档可以为ssi类型,或使用options includesnoexec让执行普通的ssi标志,但不执行其中引用的外部程序。
另一种指定server-parsed类型的方式为使用xbitback设置选项,如果将 xbithack设置为on,服务器将检查所有text/html类型的文档(包括.html后缀的文档),如果发现文件属性具备执行位 “x",则服务器就认为它是服务器分析文档,需要服务器进行处理。推荐使用addhandler进行设置,而将xbitback 设置为off,因为使用xbitback将对所有的html文档都执行额外的检查,降低了效率。
#addhandler send-as-is asis
#addhandler imap-file map
#addhandler type-map var
上面被注释的addhandler用于支持apache服务器的asis、map和var处理能力
。
# action media/type /cgi-script/location
# action handler-name /cgi-script/location
因为apache内部提供的处理功能有限,因此可以使用action为服务器定义外
部程序作为可处理的动态文档类型,这些外部程序与标准cgi程序相同,都是对输入的数据处理之后,再输出不同mime类型的结果。例如要定义一个对特殊后缀wri都先执行wri2txt进行处理操作,再返回结果的操作,可以使用:
action windows-writer /bin/wri2txt
addhandler windows-writer wri
更进一步,可以直接使用action定义对某个mime类型预先进行处理操作,这
需要例子中第一种格式的action 参数设置方式。这样设置方式就不再需要额外的addhandler用来将处理操作与文件后缀联系起来,而是使用action直接处理mime类型的文件。但如果文档后缀没有正式的mime类型,还需要先定义一个mime类型。
#metadir .web
#metasuffix .meta
meta信息是在文档发送给客户之前,预先发送给客户浏览器一些数据,因此
浏览器可以通过head请求来访问这些meta信息而不必真正通过get来返回全部文档数据。服务器通常发送给浏览器的是一些标准的http头信息,如果要想增加额外的信息,就需要使用metadir来定义meta数据存放的目录, 而metas uffix用于指定包含meta数据的文件后缀。
#errordocument 500 "the server made a boo boo.
#errordocument 404 /missing.html
#errordocument 404 /cgi-bin/missing_handler.pl
#errordocument 402
http://some.other_server.com/subscription_info.html
如果客户请求的网页不存在,或者没有访问权限等情况发生时,服务器将产
生一个错误代码,同时也将回应客户浏览器一个标识错误的网页。
errordocument就用于设置当出现哪个错误时应该回应客户浏览器那些内容,errordocument的第一个参数为错误的序号,第二个参数为回应的数据,可以为简单的文本,本地网页,本地cgi程序,以及远程主机上的网页。
browsermatch "mozilla/2" nokeepalive
browsermatch "msie 4.0b2;" nokeepalive downgrade-1.0 force-response-1.0
browsermatch "realplayer 4.0" force-response-1.0
browsermatch "java/1.0" force-response-1.0
browsermatch "jdk/1.0" force-response-1.0
browsermatch命令为特定的客户程序,设置特殊的参数,以保证对老版本浏
览器的兼容性,并支持新浏览器的新特性。
#
# sethandler server-status
# order deny,allow
# deny from all
# allow from .your_domain.com
#
#
# sethandler server-info
# order deny,allow
# deny from all
# allow from .your_domain.com
#
#
# deny from all
# errordocument 403 http://phf.apache.org/phf_abuse_log.cgi