描述指令的术语

优质
小牛编辑
134浏览
2023-12-01

本文对用于描述Apache配置指令的术语加以说明。

说明

对指令用途的简单说明。

语法

说明该指令在配置文件中使用的形式(随指令的不同而不同),在指令的定义中有说明。指令后面一般可以跟一个或多个用空格分开的参数。如果参数中有空格,则必须用双引号括起来,用方括号括起来的是可选参数。如果一个参数可以取多个值,则各个可能的值用"|"分开。应该原样输入的文字使用默认字体,而可变的必须按实际情况加以替换的会加强显示。使用可变参数个数的指令以"..."结尾,以表示最后一个参数可以重复。

指令的参数类型非常多,以下列出常用的部分。

URL
一个完整的包括类型、主机名和可选路径名的统一资源引用名,如:http://www.example.com/path/to/file"/path/to/file"是表示资源在网络空间(而不是文件系统)中的位置。
file-path
文件在本地文件系统中相对于根目录的路径,如"/usr/local/apache/htdocs/path/to/file"。除非以斜杠(/)开头,否则将被视为相对于ServerRoot的相对路径。
directory-path
目录在本地文件系统中相对于根目录的路径,如:/usr/local/apache/htdocs/path/to/
filename
不带路径信息的文件名,如:file"https://www.xnip.cn/doc/apache22/glossary" title="see glossary">正则表达式,是对文本匹配模式的描述。指令的定义中会说明应该使用什么regex
extension
一般是指filename中最后一个"."号后面的部分。不过,Apache可以辨认文件的多个extension ,如果filename中含有多个".",则第一个"."后面由每个"."分隔开的部分都是此文件的extension 。比如"file"有两个extension".",而且不区分大小写。
MIME-type
一种用一个主格式类型和一个副格式类型并用斜杠分隔的描述文件格式的方法,如:text/html
env-variable
这是Apache配置过程中定义的环境变量的名称。注意,它不一定与操作系统中的环境变量相同。详情参见环境变量文档

默认值

如果该指令有默认值(即如果你没有在配置中明确指定,那么Apache服务器会默认设置一个特定的值,并认为它是你设置的),会在此处说明。如果没有,则会指明是"None"。注意,此处的默认值并不一定与服务器发行版中默认的httpd.conf中该指令的取值相同。

作用域

它表示该指令出现在配置文件的什么位置才是合法的。它是一个用逗号分隔的一个或多个下列值的列表:

server config
说明该指令可以用于服务器配置文件(httpd.conf),但不能用于任何<VirtualHost><Directory>段以及.htaccess文件中。
virtual host
说明该指令可以用于服务器配置文件的<VirtualHost>段中。
directory
说明该指令可以用于服务器配置文件<Directory>, <Location>, <Files>, <Proxy>段中,并服从配置段一文的限制。
.htaccess
说明该指令可以用于针对单个目录及其子目录的.htaccess文件中。它可能会因overrides的设置而不起作用。

指令应该仅仅出现在允许出现的作用域中,否则会产生配置错误,并导致服务器不能正确处理请求,或者根本不能启动。

指令的有效位置,事实上是其所有被列出的作用域逻辑或的结果。也就是如果一个指令被标为"server config, .htaccess"则可以用于httpd.conf.htaccess ,但不能用于任何<Directory><VirtualHost>容器。

覆盖项

该属性表示要使.htaccess文件中的该指令有效必须激活的配置覆盖项。如果一个指令的作用域不包含.htaccess ,则无此内容。

AllowOverride指令使覆盖生效,并作用于一个特定的范围(比如一个目录)及其下分支,除非又被其下层中其他的AllowOverride指令所修改。对指令的说明中同时列出了其可能的覆盖项。

状态

状态代表了此指令与Apache服务器结合的紧密程度;也就是说,有可能需要重新编译服务器以获得一个指令的功能。其可能的值有:

Core
Apache服务器最核心的部分,始终有效。
MPM
由一个多路处理模块提供,此类指令仅仅在使用了指令定义中模块一行所列的MPM之一时才有效。
Base
由默认编译进服务器的一个Apache标准模块提供,一般总是有效的,除非你刻意在编译时从配置中删除此模块。
Extension
由一个默认不被编译进服务器的模块提供。要激活此指令并使用其功能,需要修改服务器编译时配置并重新编译Apache。
Experimental
由一个一般来说默认不被编译进服务器的模块提供,并且需要你自己承担使用中的风险。对此指令提供文档是为了保持完整性,而并不一定有技术支持。提供此指令的模块,是否默认被编译进入服务器都有可能,其说明页面的顶部注明了其有效性。

模块

对该指令提供支持的模块列表。

兼容性

如果该指令不是原始Apache2的发行版的一部分,此处会写明此指令应该被使用于哪个版本;另外,如果此指令在特定平台上有功能限制,此处会有详细说明。