📄 ahttp.txt
字号:
4.3.2 用法
在伺服器配置档里,定义一个称为 httpd/send-as-is 的 mime 型态,
例如
AddType httpd/send-as-is asia
这定义 .asis 副档名是新的 httpd/send-as-is mime 型态。任何副
档名是 .asis 的档案内容由阿帕契送出给客户端时几乎不会有任何的
改变。客户端将需要 HTTP 标头来联系,所以别忘记它们。 A Status:
仍然需要标头;此资料应该是 3位数字的 HTTP 回应码,跟随一段文字
讯息。
这里有个范例档,其内容是告诉客户端有个档案被重导送出。
Status: 302 Now where did I leave that URL
Location: http://xyz.abc.com/foo/bar.html
content-type: text/html
Fred's exceptionally wonderful page has moved to Joe'ssite
注意: 伺服器一定会在送给客户端的资料里加上 Date: 以及 Server:
标头,所以不应该包含在这个档案里。伺服器不会加上 Last-Modified
标头,所以应该要才对。 4.4 mod_auth 模组 这个模组包含在 mod_auth.c
档案里,而且依预设会编译进来。它提供 的功能是使用文字档案来执行使用者验认。
4.4.1 AuthGroupFile 语法: AuthGroupFile 档案名称 用於: directory, .htaccess 需求: AuthConfig
状态: 基础 模组: mod_auth AuthGroupFile
这个指令设定一个文字档的名称,这个文字档包含用来
执行使用者验认的使用者群组列表。档案名称是群组档案的绝对路径。
这个群组档案的每一行包括一个群组名称,跟随一个冒号,其後是藉由
空白隔开的使用者名称。例如: mygroup: bob joe anne
注意搜寻很大的群组档案是很没有效率的;应该用 AuthDBMGroupFile 来取代它。 安全:
确定这个 AuthGroupFile 储放在伺服器的文件树之外;不要把
它放在它保护的目录里。否则,客户端将能够下载这个 AuthGrpupFile 档案。 参阅
AuthName, AuthType 以及 AuthUserFile 。 4.4.2 AuthUserFile 语法: AuthUserFile 档案名称
用於: directory, .htaccess 需求: AuthConfig 状态: 基础 模组: mod_auth 这个 AuthUserFile
指令设定一个文字档的名称,这个文字档包含用来
执行使用者验认的使用者以及密码列表。档案名称是到群组档案的绝对 路径。
这个使用者档案的每一行包括一个使用者名称,跟随一个冒号,其後是 藉由 crypt()
加密过的密码。多个相同使用者的情况没有定义。
注意搜寻很大的使用者档案是很没有效率的;应该用 AuthDBMUserFile 来取代它。
安全: 确定这个 AuthUserFile 储放在伺服器的文件树之外;不要把它
放在它所保护的目录里。否则,客户端将能够下载这个 AuthUserFile 档案。 参阅
AuthName, AuthType 以及 AuthGroupFile 。 4.5 mod_cgi 模组 这个模组包含在 mod_cgi.c
档案里,而且依预设会编译进来。它提供 CGI 指令稿的执行能力。任何 mime 型态为
application/x-httpd-cgi 的档案都将由这个模组处理。 4.5.1 摘要 任何拥有
application/x-httpd-cgi 之 mime 型态的档案都会被当作 CGI
指令稿,而且由伺服器执行,并把输出传回客户端。档案可以藉由 使用 AddType
指令所定义的副档名,或是藉由放在 ScriptAlias 所 设定的目录来成为这种型态。
当伺服器启动一个 CGI 指令稿时,它将加上一个称为 DOCUMENT_ROOT
的环境变数。这个变数将会包含 DocumentRoot 配置的内容。 4.5.2 CGI 环境变数
这个伺服器将会设立定义在 CGI 规格中的 CGI 环境变数,配合下列 的但书:
REMOTE_HOST 这只有在伺服器没有配合 MINIMAL_DNS 编译的时候才会设定。
REMOTE_IDENT 这只有在 IdentityCheck 设为 on 的时候才会设定。 REMOTE_USER
这只有在 CGI 指令稿需要验认的时候才会设定。 4.6 mod_dir 模组 这个模组包含在
mod_dir.c 档案里,而且依预设会编译进来。它提供 作为目录索引之用。 4.6.1 摘要
这个模组控制目录索引。目录的索引可以有两种来源:
。一个由使用者所撰写的档案,典型是称为 index.html 的档案 。DrectoryIndex
指令设定这个档案的名称。
。另一种是由伺服器所产生的列表。其它的指令控制这个列表的 格式。AddIcon,
AddIconByEncoding and AddIconByType 都
是用来设定显示不同档案型态所使用的图示列表;对於每种列
出的档案型态,显示列出的第一个符合的图示。 4.6.2 AddDescription 语法:
AddDescription 字串 档案 档案 ... 用於: server config, virtual host, directory, .htaccess 需求:
Indexes 状态: 基础 模组: mod_dir
这是设定某档案所要显示的描述,供象徵索引(FancyIndexing) 使用。
档案是指所要描述之档案的副档名,部份档案名称,替代字元表示式或
完整档案名称。 字串以双引号(") 括起。例如: AddDescription "The planet Mars"
/web/pics/mars.gif 4.6.3 AddIcon 语法: AddIcon 图示 名称 名称 ... 用於: server config, virtual
host, directory, .htaccess 需求: Indexes 状态: 基础 模组: mod_dir
这设定显示在档案名称之後的图示供作象徵索引之用。图示可以是某个 图示的相对
URL 或是给非图形化浏览器使用的文字标签。 对於目录可以使用 ^^DIRECTORY^^
这个名称,^^BLANKICON^^ 可以用
在空白行(使列表的格式正确),名称也可以是扩充档名,替代字元表
示式,部份或完整的档案名称。例如: AddIcon (IMG,/icons/image.xbm) .gif .jpg .xbm
AddIcon /icons/dir.xbm ^^DIRECTORY^^ AddIcon /icons/backup.xbm *~ 可能的话,使用
AddIconByType 应该比 AddIcon 好。 4.6.4 AddIconByEncoding 语法: AddIconByEncoding
icon mime-encoding mime-encoding ... 用於: server config, virtual host, directory, .htaccess 需求:
Indexes 状态: 基础 模组: mod_dir 这设定显示在有 mime-encoding
的档案名称之後的图示供作象徵索引 之用。图示可以是某个图示的相对 URL
或是给非图形化浏览器使用的 文字标签。 Mime-encoding
是个符合要求之编码内容的替代字元表示式。例如: AddIconByEncoding
/icons/compress.xxbm x-compress 4.6.5 AddIconByType 语法: AddIconByType icon mime-type
mime-type ... 用於: server config, virtual host, directory, .htaccess 需求: Indexes 状态: 基础
模组: mod_dir 这设定显示在 mime-type 的档案名称之後的图示供作象徵索引之用。
图示可以是某个图示的相对 URL 或是给非图形化浏览器使用的文字标 签。
Mime-encoding 是个符合要求之 mime 型态的替代字元表示式。例如: AddIconByType
(IMG, /icons/image.xbm) image/* 4.6.6 DefaultIcon 语法: DefaultIcon url 用於: server config,
virtual host, directory, .htaccess 需求: Indexes 状态: 基础 模组: mod_dir DefaultIcon
这个指令设定当不知道指定的图示为何时显示的图示供作 象徵索引之用。URl
是该图示的(%-escaped) 相对 URL 。例如: DefaultIcon /icon/unknow.xbm 4.6.7 DirectoryIndex
语法: DirectoryIndex local-url local-url 用於: server config, virtual host, directory, .htaccess 需求:
Indexes 状态: 基础 模组: mod_dir DirectoryIndex
这个指令设定当客户端藉由指定没有以档案做结尾的
目录名称请求该目录的索引时所要找寻的来源列表。Local-url 是在伺
服器上相对於请求之目录的文件;它通常是目录里某个档案的名称。可 以有好几个
URL ;伺服器会回传它找到的第一个。如果这些来源没有
一个存在,那麽伺服器将会自行产生一份该目录的列表。例如: DirectoryIndex
index.html 然後,对於 http://myserver/docs/ 的请求若该来源设定的档案存在 的话会回传
http://myserver/docs/index.html,如果不存在就回传该 目录的列表。
注意该文件并不需要是相对於该目录的: DirectoryIndex index.html index.txt /cgi-bin/index.pl
这会使得 /cgi-bin/index.pl 这个 CGI 指令稿在 index.html 以及 index.txt
都不存在於该目录的情况下被起动。 4.6.8 FancyIndexing 语法: FancyIndexing 布林值
用於: server config, virtual host, directory, .htaccess 需求: Indexes 状态: 基础 模组: mod_dir
FancyIndexing 此指令设定目录的象徵索引选项。布林值可以是 on 或 off。IndexOptions
这个指令应该用来参照之。 4.6.9 HeaderName 语法: HeaderName 档案名称 用於: server
config, virtual host, directory, .htaccess 需求: Indexes 状态: 基础 模组: mod_dir HeaderName
这个指令设定插入索引列示顶部的档案名称。当案名称是
要含入的档案知名称,而且相对於索引的目录。伺服器首先会把他当作 是 HTML
文件试图含入档案名称.html ,否则就当它是普通文字档含入 。例如: HeaderName
HEADER 当产生 /web 目录的索引时,伺服器首先将会找寻 /web/HEADER.html 这个
HTML 档案,若找到则将其含入,否则会含入 /web/HEADER 这个
普通文字档,如果存在的话。 参阅 ReadmeName 。 4.6.10 IndexIgnore 语法: IndexIgnore
档案 档案 ... 用於: server config, virtual host, directory, .htaccess 需求: Indexes 状态: 基础
模组: mod_dir IndexIgnore 这个指令把列出目录时要隐藏的档案加到列表中。档案
是指所要忽略之档案的副档名,部份档案名称,替代字元表示式或是
完整档案名称。多个 IndexIgnore 指令会把档案继续加入列表中而
不会取代前面的设定的忽略档案列表。依预设,此列表包含 `.' 。 例如: IndexIgnore
README .htaccess *~ 4.6.11 IndexOptions 语法: IndexOptions 选项 选项 ... 用於: server config,
virtual host, directory, .htaccess 需求: Indexes 状态: 基础 模组: mod_dir IndexOptions
这个指令指定进行目录索引时的动作。选项可以是下列 其中之一 FancyIndexing
这打该目录的象徵索引。 IconsAreLinks
这使图示成为档案链结的一部份以作为象徵索引之用。 ScanHTMLTitles 这打开撷取
HTML 文件的标题以作为象徵索引使用的功能。如果 该档案并没有藉由 AddDescription
所给的描述那麽 httpd 将 会为了取得此值而读取文件的 TITLE 标签。这会加重 CPU 及
磁碟的负担。 SuppressModified 这将会隐瞒象徵索引列示中的最後修改日期。
SuppressSize 这将会隐瞒象徵索引列示中的档案大小。 SuppressDescription
这将会隐瞒象徵索引列示中的档案名数。 预设是没有打开任何一个选项。如果有多个
IndexOptions 可以应用到
一个目录上,那麽最明白的那个会被完全采用;选项不会合并。例如: IndexOptions
FancyIndexing IndexOptions ScanHTMLTitles 那麽 /web/doc/spec 目录将只设为
ScanHTMLTitles 。 4.6.12 ReadmeName 语法: ReadmeName 档案名称 ... 用於: server config,
virtual host, directory, .htaccess 需求: Indexes 状态: 基础 模组: mod_dir ReadmeName
这个指令要附加到索引列示後面的档案之名称。档案名称
是指要含入的档案,而且是相对於索引的目录。伺服器首先会把他当作 是 HTML
文件试图含入档案名称.html ,否则就当它是普通文字档含入 。例如: ReadmeName
README 当产生 /web 目录的索引时,伺服器首先将会找寻 /web/README.html 这个
HTML 档案,若找到则将其含入,否则会含入 /web/README 这个
普通文字档,如果存在的话。 参阅 HeaderName 。 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)
特殊的指令。指令一般的语法是: [an error occurred while processing this directive]
这里的值常包括在双引号里;许多指令只允许单一个属性-值的配对。
允许使用的项目是: 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 执行;所以要确定次
程式的安全性。 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
邮件标头相同。它包含以空白行间隔的文件 描述,以杂凑('#')
字元开头的行会被当作注解。文件描述由数种标头
记录组成;如果以空白作为连续行的开始那麽记录可以连续很多行。前
导的空白会被删除而这些行就可以连接起来。标头记录包含关键字名称
,这总是以冒号结尾,跟著一个值。在关键字与值之间,以及值的记号
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -