【IT168 服务器学院】Apache配置文件包含三类:"段";"指令";"注释"
一、"段",用类HTML标签指定,给特定的指令集划定范围
1、<Directory 目录></Directory>和<DirectoryMatch 目录匹配表达式></DirectoryMatch>
2、<Files 文件路径></Files>和<FilesMatch 文件匹配表达式></FilesMatch>
3、<IfDefine> </IfDefine>
仅当定义了一个特殊的参数时会起作用。
4、<IfModule></IfModule>
把一个特定模块指令放进<Ifmodule>中可以保证这些指令在这个特定的模块已经成功加载的时候才被应用
5、<Limit> <Limit>和<LimitExcept> </LimitExcept>
这两个段限制请求方式,被封装的指令仅当服务器接到指定的HTTP请求方式时才会应用
6、<Location></Location>和<LocationMatch></LocationMatch>
7、<VirtualHost>
虚拟主机
二、"指令",由指令名指定,后跟某个值,配置服务器上所有的单个设置
Apache配置文件是靠指令工作的。一个指令是一个被赋予一个或多个值的关键字,用来指示服务器某一行为的某一方面
三、"注释",以#开头,被服务器忽略,只用于配置文件的注释
#******************************************************
#************* Apache AllowOverride指令 ***************
#******************************************************
AllowOverride
语法:AllowOverride All|None|directive-type1[directive-type2][directive-type3]等
1、AuthConfig(验证)
AllowOverride Authconfig
用于允许在.htaccess文件中使用授权指令(AuthDBMGroupFile、AuthDBMUser、AuthGroupFile、AuthName、AuthType、AuthUserFile、Require等等)
典型用法:
AuthType Basic
AuthName amdins
AuthUserFile /usr/local/passwds
AuthGroupFile /usr/local/groups
Require group admin
如果AuthConfig不属于被AllowOverride指令认可的指令类型之一,那么这个类型的指令都被忽略。
2、FileInfo
AllowOverride FileInfo
上面的指令允许在.htaccess文件中使用控制文档类型的指令(AddEncoding、AddLanguage、Addtype、DefaultType、ErrorDocument、LanguagePriority等等)
3、Indexes
AllowOverride Indexes
服务器配置文件中程序上述指令将允许在.htaccess文件中使用控制目录索引的指令(AddDescription、AddIcon、AddIconByEncoding、AddIconByType、、、)
4、Limit
AllowOverride Limit
允许使用控制主机访问的指令(Allow、Deny、Order)
例子:Deny from all
Allow from yourcompany.com
Order Deny,Allow
5、Options
AllowOverride Options
允许使用控制指定目录功能的指令(Options、XBitHack)
XBitHack开启或关闭Apache检查用什么文件分析SSI(服务器端嵌入)功能
Options 指令用于开启或关闭大量不同的动作
6、All
AllowOverride All
7、None
AllowOverride None
Options指令语法
Options [+|-] 选项 [+|-] 选项
在选项前用加号表示开启该选项;反之,用减号表示关闭该选项
例如:Options +ExecCGI +Includes -FollowSymLinks
省略加号和减号意味着关闭所以提供的选项,而只开启指导选项
如:Options Indexes
Options +ExecCGI
#ExecCGI选项开启在指定范围哪执行CGI程序的功能
Options +FollowSymLinks
Options +Includes
开启文件里的SSI(Server-side Includes,服务器端嵌入)功能,SSI使用户可以在HTML文件里嵌入大量的命令,并且当这个页面被某个客户端请求时执行这些命令
Options +IncludeNOEXEC
这条指令用于开启使用SSI许可,但同时禁止#exec命令的使用或者用#include命令引导一个CGI程序,这消除了允许SSI而带来的大部分安全隐患。
Options +Indexes
这个选项使那些没有index.html文件(或者任何由DirectoryIndex指令指定的文件)的目录能够产生自动索引。
Options +MultiViews
MultiViews选项开启内容协商功能。MultiViews使apache的一项功能,它指出哪个文档最适合客户端,并把那个最适合的文档发送到客户端
Options All
开启所有选项
Options None
关闭所有选项
#******************************************************
#********************** 虚拟主机 **********************
#******************************************************
1、基于IP的虚拟主机
<VirtualHost 192.168.1.3>
</VirtualHost>
2、基于名字的虚拟主机
NameVirtualHost 192.168.1.3
<VirtualHost 192.168.1.3>
</VirtualHost>
3、基于端口的虚拟主机
必须为服务器指定监听端口:Listen :8888
<VirtualHost 192.168.1.3:8888>
</VirtualHost>
4、大批量虚拟主机服务
a)每个虚拟主机的配置文件
b)mod_vhost_alias 有时间可以多了解一些
#******************************************************
#******************** MIME和HTTP **********************
#******************************************************
MIME类型的配置指令
1、MIME类型配置
1)TypesConfig
2)AddType
3)RemoveType
4)DefaultType
5)ForceType
2、编码
没有DefaultEncoding,默认情况下,如没有指定Encoding指令,就没有编码-也就是文件以原始的状态被简单的传送。
1)AddEncoding
为特定的的文件扩展名关联一个特定编码。该指令可以在任何地方使用。
2)RemoveEncoding
3、字符集和语言
1)AddCharset
2)RemoveCharset
3)DefaultCharset
4)AddLanguage
5)RemoveLanguage
6)DefaultLanguage
4、多扩展名文件
5、处理程序
#******************************************************
#********************** URL 映射 **********************
#******************************************************
1、Location
2、Alias和AliasMatch
3、Script和ScriptMatch
4、Redirect和RedirectMatch
5、DocumentRoot
6、错误文档
404错误 如:ErrorDocument 404 /errors/notfound.hmtl
7、URL重写
mod_rewrite(下一步需要重点了解)