Apache Options指令详解

转载 2015年11月21日 13:47:47

前言:Options指令是Apache配置文件中一个比较常见也比较重要的指令,Options指令可以在Apache服务器核心配置(server config)、虚拟主机配置(virtual host)、特定目录配置(directory)以及.htaccess文件中使用。Options指令的主要作用是控制特定目录将启用哪些服务器特性。

Options指令常见的配置示例代码如下:

<Directory "/home/www">
    #指定根目录/home/www启用Indexes、FollowSymLinks两种特性
    Options Indexes FollowSymLinks
    AllowOverride all
    Require all granted
</Directory>

Options服务器特性

Options指令的完整语法为:Options [+|-]option [[+|-]option];简而言之,Options指令后可以附加指定多种服务器特性,特性选项之间以空格分隔。下面我们来看看Options指令后可以附加的特性选项的具体作用及含义(Apache配置中的内容均不区分大小写):

1、All

表示除MultiViews之外的所有特性(这也是Options指令的默认设置)

2、None

表示不启用任何的服务器特性

服务器允许在此目录中使用符号连接(如果该配置选项位于配置段中,将会被忽略)

4、Indexes

如果输入的网址对应服务器上的一个文件目录,而此目录中又没有DirectoryIndex指令(例如:DirectoryIndex index.html index.php),那么服务器会返回由mod_autoindex模块生成的一个格式化后的目录列表,并列出该目录下的所有文件(如下图)

directory

4、MultiViews

允许使用mod_negotiation模块提供内容协商的”多重视图”。简而言之,如果客户端请求的路径可能对应多种类型的文件,那么服务器将根据客户端请求的具体情况自动选择一个最匹配客户端要求的文件。例如,在服务器站点的file文件夹下中存在名为hello.jpg和hello.html的两个文件,此时用户输入Http://localhost/file/hello,如果在file文件夹下并没有hello子目录,那么服务器将会尝试在file文件夹下查找形如hello.*的文件,然后根据用户请求的具体情况返回最匹配要求的hello.jpg或者hello.html

5、SymLinksIfOwnerMatch

服务器仅在符号连接与目标文件或目录的所有者具有相同的用户ID时才使用它。简而言之,只有当符号连接和符号连接指向的目标文件或目录的所有者是同一用户时,才会使用符号连接(如果该配置选项位于配置段中,将会被忽略)

6、ExecCGI

允许使用mod_cgi模块执行CGI脚本

7、Includes

允许使用mod_include模块提供的服务器端包含功能

8、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的配置文件;本文纯属转载,感谢原博主(原文地址

禁用Apache的Options和Trace方法

禁用Apache的Options和Trace方法
  • netuser1937
  • netuser1937
  • 2016年12月19日 14:08
  • 2326

apache中Options Indexes FollowSymLinks详解

Indexes 显示一个目录下面的文件夹和文件 要禁止 Apache 显示目录结构列表,只需将 Option 中的 Indexes 去掉即可。 在Options Indexes Fol...
  • clj9017
  • clj9017
  • 2014年01月23日 09:46
  • 1008

apache主要配置详解

1. # Deny access to the entirety of your server's filesystem. You must # explicitly permit acc...
  • sanbingyutuoniao123
  • sanbingyutuoniao123
  • 2016年05月03日 15:58
  • 8865

apache主要配置详解

1. # Deny access to the entirety of your server's filesystem. You must # explicitly permit acc...
  • sanbingyutuoniao123
  • sanbingyutuoniao123
  • 2016年05月03日 15:58
  • 8865

Java命令行解析工具Apache CLI

Apache Commons CLI 是 Apache 下面的一个解析命令行输入的工具包,该工具包还提供了自动生成输出帮助文档的功能。 Apache Commons CLI 支持多种输入参数格式,主...
  • conquer0715
  • conquer0715
  • 2015年01月17日 17:28
  • 7840

Apache的ProxyPass指令详解

原文地址:http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass 翻译:ShiningRay 描述:将远程服务器映射到本地服务器...
  • big1980
  • big1980
  • 2013年08月23日 16:31
  • 1276

Apache Options指令详解

Options指令是Apache配置文件中一个比较常见也比较重要的指令,Options指令可以在Apache服务器核心配置(server config)、虚拟主机配置(virtual host)、特定...
  • god_7z1
  • god_7z1
  • 2014年04月29日 20:33
  • 372

Apache Options Indexes FollowSymLinks详解

禁止显示Apache目录列表-Indexes FollowSymLinks 如何修改目录的配置以禁止显示 Apache 目录列表。 缺省情况下如果你在浏览器输入地址: http://localhos...
  • ebw123
  • ebw123
  • 2012年09月17日 11:41
  • 5726

AngularJS杂记9----玩转ng-options指令:工作中的常见操作

下面是关于ng-options使用复杂表达式的详解: 1、表达式语法:select as label for value in array 首先说下上面表达式什么意思,作为菜鸟,我当初在项目中遇到...
  • aigoV
  • aigoV
  • 2017年11月06日 14:17
  • 64

Apache的ProxyPass指令详解

  • 2011年02月21日 10:32
  • 172KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Apache Options指令详解
举报原因:
原因补充:

(最多只允许输入30个字)