容器在配置文件中是可以多次使用的,同时也可以嵌套使用,但是 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>容器的后面,但是按照字典顺序由短到长来排列它会第一个被处理。

最新文章

  1. 两种JavaScript的AES加密方式(可与Java相互加解密)
  2. mysql-批量修改表字段中的某一部分内容
  3. oracle11g数据库的安装以及安装之后的配置
  4. python处理字符串时出现的错误&#39;ascii&#39; codec can&#39;t decode byte 0xe9 in position 0: ordinal not in range(128)&quot; 解决方法
  5. dup2()函数的使用,
  6. android开发 更新升级安装到一半自动闪退
  7. 请求--拦截器--action经过
  8. Install-Package 那点事儿
  9. Tcxtreelist动态控制列或行是否能够编辑
  10. ASP.NET MVC进阶之路:深入理解Controller激活机制并使用Ioc容器创建对象
  11. C#中数组,ArrayList与List对象的区别
  12. freemarker(FTL)常见语法大全
  13. 使用Nginx+CppCMS构建高效Web应用服务器
  14. Docker理解
  15. 索引法则--少用OR,它在连接时会索引失效
  16. Kali-Dos洪水攻击之Hping3
  17. Netty原理分析
  18. 【 记忆网络 1 】 Memory Network
  19. MongoDB集群配置笔记二(实战)
  20. C# 后台获取前台交互判断

热门文章

  1. SpringBoot入门(IDEA篇)(三)
  2. ORM查询练习
  3. 基础篇:6.3)形位公差-标注 Mark
  4. hdu4496-D-city--逆序并查集
  5. Linux安装python3.6.3
  6. python量化分析系列之---5行代码实现1秒内获取一次所有股票的实时分笔数据
  7. hive Tutorial
  8. Zookeeper---系统学习
  9. Jmeter调试脚本之断言
  10. unittest之装饰器