Apache Options指令详解
2015-10-14 16:18
344 查看
出处:http://www.365mini.com/page/apache-options-directive.htm
host)、特定目录配置(directory)以及.htaccess文件中使用。
<Directory />
#指定根目录"/"启用Indexes、FollowSymLinks两种特性。
Options Indexes FollowSymLinks
AllowOverride all
Order allow,deny
Allow from all
</Directory>
All表示除
MultiViews允许使用
cmd"和"#exec cgi"。但仍可以从
virtual"虚拟CGI脚本。
此外,比较细心的读者应该注意到,
实际上,Apache允许在一个目录配置中设置多个
#示例1
<Directory /web/file>
Options Indexes FollowSymLinks
</Directory>
<Directory /web/file/image>
Options Includes
</Directory>
#目录/web/file/image只会被设置Includes特性
#示例2
<Directory /web/file>
Options Indexes FollowSymLinks
</Directory>
<Directory /web/file/image>
Options +Includes -Indexes
</Directory>
#目录/web/file/image将会被设置Includes、FollowSymLinks两种特性
备注1:混合使用前面带"+"/"-"和前面不带"+"/"-"的同一可选项,可能会导致出现意料之外的结果。
备注2:使用
Options指令是Apache配置文件中一个比较常见也比较重要的指令,
Options指令可以在Apache服务器核心配置(server config)、虚拟主机配置(virtual
host)、特定目录配置(directory)以及.htaccess文件中使用。
Options指令的主要作用是控制特定目录将启用哪些服务器特性。
Options指令常见的配置示例代码如下:
<Directory />
#指定根目录"/"启用Indexes、FollowSymLinks两种特性。
Options Indexes FollowSymLinks
AllowOverride all
Order allow,deny
Allow from all
</Directory>
Options指令的完整语法为:
Options [+|-]option [[+|-]option] ...。简而言之,Options指令后可以附加指定多种服务器特性,特性选项之间以空格分隔。下面我们来看看
Options指令后可以附加的特性选项的具体作用及含义(Apache配置中的内容均不区分大小写):
All表示除
MultiViews之外的所有特性。这也是Options指令的默认设置。None表示不启用任何的服务器特性。FollowSymLinks服务器允许在此目录中使用符号连接。如果该配置选项位于
<Location>配置段中,将会被忽略。Indexes如果输入的网址对应服务器上的一个文件目录,而此目录中又没有
DirectoryIndex指令(例如:
DirectoryIndex index.html index.php),那么服务器会返回由
mod_autoindex模块生成的一个格式化后的目录列表,并列出该目录下的所有文件(如下图)。
MultiViews允许使用
mod_negotiation模块提供内容协商的"多重视图"。简而言之,如果客户端请求的路径可能对应多种类型的文件,那么服务器将根据客户端请求的具体情况自动选择一个最匹配客户端要求的文件。例如,在服务器站点的
file文件夹下中存在名为
hello.jpg和
hello.html的两个文件,此时用户输入
Http://localhost/file/hello,如果在
file文件夹下并没有
hello子目录,那么服务器将会尝试在
file文件夹下查找形如
hello.*的文件,然后根据用户请求的具体情况返回最匹配要求的
hello.jpg或者
hello.html。SymLinksIfOwnerMatch服务器仅在符号连接与目标文件或目录的所有者具有相同的用户ID时才使用它。简而言之,只有当符号连接和符号连接指向的目标文件或目录的所有者是同一用户时,才会使用符号连接。如果该配置选项位于
<Location>配置段中,将会被忽略。ExecCGI允许使用
mod_cgi模块执行CGI脚本。Includes允许使用
mod_include模块提供的服务器端包含功能。IncludesNOEXEC允许服务器端包含,但禁用"#exec
cmd"和"#exec cgi"。但仍可以从
ScriptAlias目录使用"#include
virtual"虚拟CGI脚本。
此外,比较细心的读者应该注意到,
Options指令语法允许在配置选项前加上符号"+"或者"-",那么这到底是什么意思呢。
实际上,Apache允许在一个目录配置中设置多个
Options指令。不过,一般来说,如果一个目录被多次设置了
Options,则指定特性数量最多的一个
Options指令会被完全接受(其它的被忽略),而各个
Options指令之间并不会合并。但是如果我们在可选配置项前加上了符号"+"或"-",那么表示该可选项将会被合并。所有前面加有"+"号的可选项将强制覆盖当前的可选项设置,而所有前面有"-"号的可选项将强制从当前可选项设置中去除。你可以参考下面的例子:
#示例1
<Directory /web/file>
Options Indexes FollowSymLinks
</Directory>
<Directory /web/file/image>
Options Includes
</Directory>
#目录/web/file/image只会被设置Includes特性
#示例2
<Directory /web/file>
Options Indexes FollowSymLinks
</Directory>
<Directory /web/file/image>
Options +Includes -Indexes
</Directory>
#目录/web/file/image将会被设置Includes、FollowSymLinks两种特性
备注1:混合使用前面带"+"/"-"和前面不带"+"/"-"的同一可选项,可能会导致出现意料之外的结果。
备注2:使用
-IncludesNOEXEC或
-Includes时,不论前面如何设置,都会完全禁用服务器端包含。
相关文章推荐
- Apache Traffic Server编译安装
- apache
- Apache优化:修改最大并发连接数
- java.lang.NullPointerException org.apache.jsp.WEB_002dINF.pages.imagecheck.test_jsp._jspInit(test_jsp.java:22)的原因
- Ubuntu apache配置虚拟路由
- apache工作模式与配置
- Centos 7 使用Apache部署Redmine。
- Apache Hadoop YARN – ResourceManager
- 開啟apache的日誌功能,但是不記錄.js;.css;.jpg;.ico;.png等訪問記錄
- 性能测试之Apache性能调优课程
- spark master开发中org.apache.spark.serializer.JavaDeserializationStream错误解决
- MoinMoin install in apache (win)
- 关于ubuntu 下安装的php和apache2 如何配置多虚拟主个机
- centos LAMP第一部分-环境搭建 Linux软件删除方式,mysql安装,apache,PHP,apache和php结合,phpinfo页面,ldd命令 第十九节课
- CentOS下编译安装Apache2(新)
- Apache Spark入门攻略
- 对apache-commons工具类的简单介绍
- 详解浏览器缓存机制与Apache设置缓存
- org.apache.jasper.JasperException: Expecting "jsp:param" standard action with "name" and "value" attributes
- Apache Ant运行时Unable to locate tools.jar解决方法