http://www.365mini.com/page/apache-options-directive.htm

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

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

  1. <Directory />
  2. #指定根目录"/"启用Indexes、FollowSymLinks两种特性。
  3. Options Indexes FollowSymLinks
  4. AllowOverride all
  5. Order allow,deny
  6. Allow from all
  7. </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.jpghello.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. #示例1
  2. <Directory /web/file>
  3. Options Indexes FollowSymLinks
  4. </Directory>
  5. <Directory /web/file/image>
  6. Options Includes
  7. </Directory>
  8. #目录/web/file/image只会被设置Includes特性
  1. #示例2
  2. <Directory /web/file>
  3. Options Indexes FollowSymLinks
  4. </Directory>
  5. <Directory /web/file/image>
  6. Options +Includes -Indexes
  7. </Directory>
  8. #目录/web/file/image将会被设置Includes、FollowSymLinks两种特性

备注1:混合使用前面带"+"/"-"和前面不带"+"/"-"的同一可选项,可能会导致出现意料之外的结果。

备注2:使用-IncludesNOEXEC-Includes时,不论前面如何设置,都会完全禁用服务器端包含。

**Apache Options指令详解相关推荐

  1. 九爷带你了解 nginx 日志配置指令详解

    nginx日志配置指令详解 日志对于统计排错来说非常有利的. 本文总结了nginx日志相关的配置如 access_log.log_format.open_log_file_cache.log_not_ ...

  2. apache启服务命令_Linux系统重启apache服务命令详解

    Linux系统中apache是重要的一个服务,掌握基本操作尤其重要.下面由学习啦小编为大家整理了Linux系统重启apache服务命令详解,希望对大家有帮助! Linux系统重启apache服务命令详 ...

  3. Dockerfile配置指令详解

    Dockerfile配置指令详解 一.FROM 二.RUN 三.CMD 四.EXPOSE 五.ENV 六.ADD 七.COPY 八.ENTRYPOINT 九.VOLUME 十.USER 十一.WORK ...

  4. arm-linux-ld中的参数,arm-linux-ld指令详解

    arm-linux-ld指令详解 我们对每个c或者汇编文件进行单独编译,但是不去连接,生成很多.o 的文件,这些.o文件首先是分散的,我们首先要考虑的如何组合起来:其次,这些.o文件存在相互调用的关系 ...

  5. movsb movsw movsd 指令详解

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u013490896/article/d ...

  6. Apache Hadoop版本详解

    由doop版本混乱多变,因此,Hadoop的版本选择问题一直令很多初级用户苦恼.本文总结了ApacheHadoop和Cloudera Hadoop的版本衍化过程,并给出了选择Hadoop版本的一些建议 ...

  7. java中Freemarker list指令详解

    java Freemarker中list指令主要是进行迭代服务器端传递过来的List集合. 定义 <#list nameList as names> ${names} </#list ...

  8. C#中的预处理指令详解

    这篇文章主要介绍了C#中的预处理指令详解,本文讲解了#define 和 #undef.#if.#elif.#else和#endif.#warning和#error.#region和#endregion ...

  9. pragma comment的使用 pragma预处理指令详解

    pragma comment的使用 pragma预处理指令详解 #pragma comment( comment-type [,"commentstring"] ) 该宏放置一个注 ...

最新文章

  1. 大厂技术资料:Redis+Nginx+Spring全家桶+Dubbo精选
  2. byte[]数组和int之间的转换
  3. Ubuntu安装VMware Tools的方法
  4. xubuntu19.10碰到initramfs终极解决方案
  5. Linux之shell脚本(2)
  6. java检查危险品程序_危险品检查java程序
  7. c语言xuanzeti1,c语言选择题库1
  8. 微软已确认放弃Windows 10X操作系统 新功能下放
  9. def __init__(self)是什么意思_一文搞懂什么是Python的metaclass
  10. 进销存excel_干货分享,上班族必看。EXCEL轻松搞定制作进销存报表
  11. 经济学和哲学_边做边学的哲学
  12. 【GAPPER乡村笔记项目】盘点老龄化社会背景下人工智能及机器人技术的应用
  13. AUTOCAD——成组命令
  14. 模拟电子电路(1)——概论
  15. 职等你来 | UE/UX交互设计师(15k);时钟AE工程师;数字IC验证工程师(薪资开放)
  16. hive drop表恢复手册
  17. Android studio sdk下载
  18. iOS——directory not found for option 链接错误
  19. 速腾聚创16线雷达配置
  20. 解决百度爬虫无法爬取 Github Pages 个人博客的问题

热门文章

  1. mysql行级锁测试
  2. PADS Layout VX.2.3 修改层名
  3. iOS开发UI篇—实现UITableview控件数据刷新
  4. MongoDB学习(五)使用Java驱动程序3.3操作MongoDB快速入门
  5. Windows系统安装zabbix-agent客户端
  6. Windows phone 应用开发[12]-Pex 构建自动化白盒测试[下]
  7. 开发工具总结(4)之Android Studio3.0填坑指南
  8. C/S架构程序多种类服务器之间实现单点登录(转)
  9. JavaEE(1) - Weblogic 服务器管理的数据源
  10. [CTO札记]防盗版新思路:招安