容器在配置文件中是可以多次使用的,同时也可以嵌套使用,但是 Apache 在处理容器时却是有一定顺序的,因此在编写容器配置时需要按照一定的顺序来进行,否则Apache处理的结果很可能不是管理员想要的。

  在Apache中容器的处理顺序如下:

() <Directory>与 .htaccess 文件;
()<DirectoryMatch> 与 <Directory>
()<Files>和<FilesMatch>
()<Location>和<LocationMatch>

  Apache会优先处理<Directory>容器(但是不会处理带有正则表达式的<Directory>容器)和 .htaccess 文件,如果 .htaccess 文件与<Directory> 容器有冲突,则以 htaccess 文件的内容来覆盖<Directory>中有冲突的部分。随后Apache 会处理<DirectoryMatch>与<Directory>,再接着处理<Files>和<FilesMatch>容器,最后处理<Location>和<LocationMatch>容器。例如:

<Location /srv/www/html>
Order deny,allow
Allow from all
</Location> <Directory /srv/www/html>
Order allow,deny
Allow from all
Deny from www.username.com
</Directory>

  在上面的例子中,由于Apache会先处理<Directory  /srv/www/html>容器,最后处理 <Location /srv/www/html> 容器,所以<Location /srv/www/html>容器的内容会覆盖<Directory /srv/www/html>,因此对于禁止 www.username.com 的访问将会被允许所有用户的访问所代替。

  在以上四组容器中,除了<Directory>容器外其他三组容器都会按照在配置文件中的顺序来被处理,而<Directory>容器则按字典顺序由短到长依次被处理,例如:

<Directory /srv/web/html>
Options +Indexes
</Directory> <Directory /srv/web/>
Options -Indexes
</Directory>

  在上面的例子中,<Directory /srv/web/> 容器虽然排在 <Directory /srv/web/html>容器的后面,但是按照字典顺序由短到长来排列它会第一个被处理。

Apache服务器运维笔记(5)----容器的处理顺序的更多相关文章

  1. Apache服务器运维笔记(3)----容器部分

    1.<IfModule>容器 <IfModule>容器作用于模块,它会首先判断模块是否载入,然后再决定是否进行处理,也就是说只有当判断结果为真时才会执行容器内的指令,相反如果为 ...

  2. Apache服务器运维笔记(2)----使用<IfDefine>容器实现不同的配置

    还有一种方法用来实现不同配置的Apache服务器启动,就是在一个配置文件中使用<IfDefine name> ... </IfDefine> 容器来定义,在<IfDefi ...

  3. Apache服务器运维笔记(2)----使用apxs来进行编译安装 mod_txt 模块

    mod_txt是一个非常有趣的模块,它实现了文本的输出过滤器,它可以在指定类型的网页上,将你指定的txt文件显示在网页的头部和尾部. 在它的主页 http://apache.webthing.com/ ...

  4. Apache服务器运维笔记(1)----运行多个Apache服务器

    所有的Apache管理员都会遇到一个问题,就是在一台物理系统上运行多个版本的Apache服务器,或是运行多个同一版本的Apache服务器的副本,对于前者,在编译时为不同版本的Apache指定不同的安装 ...

  5. Apache服务器运维笔记(6)----目录 文件 网络容器的安全问题

    <Directory>.<Files>.<Location> 这三个容器的作用都很相似,都是以容器的形式来封装一组指令对访问进行控制,只是它们的区别在于作用于目录. ...

  6. Apache服务器运维笔记(4)----服务器扩展部分

    在Apache的默认配置文件夹中有一个 extra 目录,这个目录是用来存放 Apache 其他模块的配置文件的.这些文件是 Apache 针对常用的模块而设置并提供的,它们都是通过 Include ...

  7. 《DevOps故障排除:Linux服务器运维最佳实践》读书笔记

    首先,这本书是Linux.CN赠送的,多谢啦~ http://linux.cn/thread-12733-1-1.html http://linux.cn/thread-12754-1-1.html ...

  8. 运维笔记--postgresql占用CPU问题定位

    运维笔记--postgresql占用CPU问题定位 场景描述: 业务系统访问变慢,登陆服务器查看系统负载并不高,然后查看占用CPU较高的进程,发现是连接数据库的几个进程占用系统资源较多. 处理方式: ...

  9. 谈谈我的windows服务器运维管理

    我们开发的页游General War(http://gw.gamebox.com)上线运营也有半年多了,服务器的开发到运维基本都由我一手包办,在服务器上线之后我们又招了一个程序员接手后续功能的开发,而 ...

随机推荐

  1. IDEA通过Maven WebApp archetype 创建Spring boot项目骨架

    springboot项目资源: GitHub地址:https://github.com/TisFreedom/springbootdome.git 码云地址:https://gitee.com/Tis ...

  2. [CoffeeScript]使用Yield功能

    CoffeeScript 1.9 开始提供了类似ES6的yield关键字. 自己结合co和bluebird做了个试验. co -- http://npmjs.org/package/co  -- fo ...

  3. Thread类和Runnable接口的比较

    Thread和Runnable的联系 Thread类的定义: public class Thread extends Object implements Runnable 联系:从Thread类的定义 ...

  4. bzoj3280: 小R的烦恼(最小费用最大流)

    Description 小R最近遇上了大麻烦,他的程序设计挂科了.于是他只好找程设老师求情.善良的程设老师答应不挂他,但是要 求小R帮助他一起解决一个难题.问题是这样的,程设老师最近要进行一项邪恶的实 ...

  5. 评估指标:ROC,AUC,Precision、Recall、F1-score

    一.ROC,AUC ROC(Receiver Operating Characteristic)曲线和AUC常被用来评价一个二值分类器(binary classifier)的优劣 . ROC曲线一般的 ...

  6. js高级程序设计 笔记 --- 引用类型

    一,变量和作用域 1, js变量可以保存两种类型,基本类型.引用类型和symbol类型,基本类型有5种:undefined.null.boolean.number.string,它们都有以下的特征 基 ...

  7. 批量生成python自动化测试脚本

    先前有家供应商与我们合作开发自动化工程,采用的py unittest作为脚本运行框架.我发现他们出的脚本都是挨个手写的,格式上也是参差不齐.所以有了根据用例表批量生成脚本的一段小代码 对一个测试脚本必 ...

  8. js函数声明提升与变量提升

    变量提升 变量提升: 在指定作用域里,从代码顺序上看是变量先使用后声明,但运行时变量的 “可访问性” 提升到当前作用域的顶部,其值为 undefined ,没有 “可用性”. alert(a); // ...

  9. Python数据类型(列表)

    文章内容参考了教程:http://www.runoob.com/python/python-basic-syntax.html#commentform Python 列表(List) 序列是Pytho ...

  10. Python数据类型(数字)

    文章内容参考了教程:http://www.runoob.com/python/python-basic-syntax.html#commentform Python 变量类型 变量存储在内存中的值.这 ...