说明 包含作用于匹配指定文件名的指令
语法
作用域 server config, virtual host, directory, .htaccess
覆盖项 All
状态 核心(C)
模块 core
filename参数应当是一个文件名或是一个包含通配符的字符串,其中"?"匹配任何单个字符,"*"匹配任何字符串序列。在"~"字符之后同样可以使用正则表达式。比如:
将匹配绝大部分常见的因特网图象格式。然而在Apache1.3及其后继版本中,更推荐使用
请注意与
说明 包含作用于与正则表达式匹配的文件名的指令
语法
作用域 server config, virtual host, directory, .htaccess
覆盖项 All
状态 核心(C)
模块 core
将匹配最常见的internet图形文件格式。
Include 指令
说明 在服务器配置文件中包含其它配置文件
语法 Include file-path|directory-path
作用域 server config, virtual host, directory
状态 核心(C)
模块 core
兼容性 通配符仅在Apache 2.0.41 及以后的版本中可用
这个指令允许在服务器配置文件中加入其它配置文件。
Shell风格(fnmatch())的通配符可以用于按照字母顺序一次包含多个文件。另外,如果Include指向了一个目录而不是一个文件,Apache将读入该目录及其子目录下的所有文件,并依照字母顺序将这些文件作为配置文件进行解析。但是并不推荐这么做,因为偶尔会有临时文件在这个目录中生成,从而导致httpd启动失败。
文件的路径可以是一个完整的绝对路径(以一个斜杠开头):
Include /usr/local/apache2/conf/ssl.conf
Include /usr/local/apache2/conf/vhosts/*.conf
或是相对于ServerRoot目录的相对路径:
Include conf/ssl.conf
Include conf/vhosts/*.conf
请确保包含的目录中不包含任何诸如编辑器临时文件等引起误导的文件,因为Apache会尝试读取它们并把其中的内容作为配置指令来处理,这样可能会导致启动过程的失败。运行apachectl configtest 将会把配置检查时所使用的所有文件列出来以供参考。这将有助于检验配置中是否仅包含了您所希望出现那些文件。
root@host# apachectl configtest
Processing config file: /usr/local/apache2/conf/ssl.conf
Processing config file: /usr/local/apache2/conf/vhosts/vhost1.conf
Processing config file: /usr/local/apache2/conf/vhosts/vhost2.conf
Syntax OK
说明 将封装的指令作用于匹配的URL
语法
作用域 server config, virtual host
状态 核心(C)
模块 core
何时使用
使用
对所有的原始(非代理)请求来说,匹配的URL应该是具有"/path/"形式的URL路径。不包括访问方法、主机名、端口或查询字符串等。对于代理的请求,匹配的URL必须为"scheme://servername/path"的形式,而且必须包括前缀。
URL可以用一个通配符字符串来进行通配符的处理。"?"匹配任何单个的字符,而"*"匹配所有字符序列。
也可以附加"~"字符来表示使用正则表达式。例如:
将匹配所有包含字符串"/extra/data"或"/special/data"的URL。在Apache1.3及其后续版本中,加入了一个新的推荐使用的
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from .foo.com
请注意"/"(斜线)
斜线字符根据它在URL中出现的位置不同有着特殊的意义。大家可能都已经习惯在文件系统中,多个连续的斜线会被作为单一的斜线处理(例如"/home ///foo"与"/home/foo"相同)。但在URL里面,这样是行不通的。
说明 将封装的指令作用于正则表达式匹配的URL
语法
作用域 server config, virtual host
状态 核心(C)
模块 core
将匹配包含子串"/extra/data"或"/special/data"的URL。