常用基础 - 查询指令手册

  • 作者:KK

  • 发表日期:2017.9.5


配置的语法套路

配置文件的语法主要的构造由指令参数来构成,如下:

指令1令1 参数1数1
指令2令2 参数1数1
指令3令3 参数1数1

<指令 参数>
	指令4令4 参数1数1
	指令5令5 参数1数1
	……
</指令>

用什么参数就看用什么指令了,所以我们需要先认识指令才知道用什么参数嘛

我的查询方式

比如看到Listen 80这个配置,Listen就是指令名称,用于监听端口,要监听哪个端口?在参数位写个数字就是端口号了

因此,解读配置文件过程中如果遇到不懂的指令,类似BrowserMatch "MSIE 10.0;" bad_DNT这样的话第一个想法就是上网查关键词“apache BrowserMatch”看看有没有相关文章,如果常见的话会有经验人士分享的

而如果查不到的时候就要进入Apache中文官方文档 - 指令快速参考这个页面,Ctrl + F在页面上搜索“BrowserMatch”这个关键词就能找到指令说明了(或在上面的头字母筛选栏里面点击B字头在里面找),反正能在里面找到指令的使用解释的

特别是想深入了解某些指令是否能满足自己的配置需求时最好查手册,因为里面有详细的解释


命令详情的说明

在命令索引页点击命令的链接后,就会进入命令的详细解释页面,一般命令的解释内容中对我而言,最能起到参考作用的是Description(简介)Syntax(语法)Context(上下文)Module(模块),如下图:

其中Context指的是你可以在哪些地方使用这个指令,比如ServerName指令不能写在Directory指令里,如下配置写法是错误的!!

<Directory D:/a/b>
	#ServerName的Context不包含directory
	ServerName www.weixin.com
</Directory>

Module倒是比较好理解,意思是说它属于哪个模块嘛,如果你使用指令出错,请记得确认一下这个模块是否有被加载


上下文(使用域)

许多指令中常见的作用域有以下四个,我解释一下:

server config:服务器配置,它并不是单纯指http.conf这个文件,就算在http.conf里Include了别的配置文件,那server config也是指这个文件里的一级配置(没有任何标签包住的),比如Listen指令的上下文有server config,那在httpd.conf和vhosts.conf中它都能在一级配置里书写,如下图:

virtual host:指的就是<VirtualHost>这个指令标签的里面,就类似HTML里的li是写在ul的里面意思一样,li的作用域就是ul、ol、dl这些标签

directory:大家应该也很眼熟,这里指的是<Directory>指令标签

.htaccess:就是指重写规则的那个文件了