Apache 的 order deny allow 设置说明

 更新时间:2010年12月17日 10:32:54   作者:  
Allow和Deny可以用于apache的conf文件或者.htaccess文件中(配合Directory, Location, Files等),用来控制目录和文件的访问授权。
所以,最常用的是:
Order Deny,Allow
Allow from All

注意“Deny,Allow”中间只有一个逗号,也只能有一个逗号,有空格都会出错;单词的大小写不限。

上面设定的含义是先设定“先检查禁止设定,没有禁止的全部允许”,而第二句没有Deny,也就是没有禁止访问的设定,直接就是允许所有访问了。这个主要是用来确保或者覆盖上级目录的设置,开放所有内容的访问权。

按照上面的解释,下面的设定是无条件禁止访问:
Order Allow,Deny
Deny from All

如果要禁止部分内容的访问,其他的全部开放:
Order Deny,Allow
Deny from ip1 ip2
或者
Order Allow,Deny
Allow from all
Deny from ip1 ip2

apache会按照order决定最后使用哪一条规则,比如上面的第二种方式,虽然第二句allow允许了访问,但由于在order中allow 不是最后规则,因此还需要看有没有deny规则,于是到了第三句,符合ip1和ip2的访问就被禁止了。注意,order决定的“最后”规则非常重要,下面是两个错误的例子和改正方式:

Order Deny,Allow
Allow from all
Deny from domain.org
错误:想禁止来自domain.org的访问,但是deny不是最后规则,apache在处理到第二句allow的时候就已经匹配成功,根本就不会去看第三句。
解决方法:Order Allow,Deny,后面两句不动,即可。

Order Allow,Deny
Allow from ip1
Deny from all
错误:想只允许来自ip1的访问,但是,虽然第二句中设定了allow规则,由于order中deny在后,所以会以第三句deny为准,而第三句的范围中又明显包含了ip1(all include ip1),所以所有的访问都被禁止了。
解决方法一:直接去掉第三句。
解决方法二:
Order Deny,Allow
Deny from all
Allow from ip1

总结:Order Deny,Allow中,后一个是一定会被执行的(有相应的allow或deny语句时),如果没有则按照语义分析。

相关文章

  • centos7下安装java及环境变量配置技巧

    centos7下安装java及环境变量配置技巧

    现在我们常见的一些关于Linux的系统很多,但是使用的更多的一般都是CentOS和Ubuntu,今天我就来记录一下关于centos下java的安装和环境变量的配置,感兴趣的朋友跟随脚本之家小编一起学习吧
    2018-05-05
  • CentOS6.5安装python3.7详细步骤

    CentOS6.5安装python3.7详细步骤

    在本篇文章里小编给大家整理的是关于CentOS6.5安装python3.7的实例代码以及相关知识点,有需要的朋友们学习下。
    2019-09-09
  • Linux重置WordPress管理员密码的方法步骤

    Linux重置WordPress管理员密码的方法步骤

    重置 WordPress 管理员密码通常可以通过 WordPress 仪表板完成,然而,在某些情况下,例如忘记管理员密码且无法访问电子邮件,或网站崩溃无法进入仪表板时,我们可能需要通过命令行来重置,所以本文给大家介绍了Linux环境如何使用命令重置 WordPress 管理员密码
    2024-06-06
  • VMware虚拟机安装 CentOS 8 (1905)系统的教程图解

    VMware虚拟机安装 CentOS 8 (1905)系统的教程图解

    这篇文章主要介绍了CentOS 8 (1905)系统安装,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • Linux中可以节省你时间的15个命令别名

    Linux中可以节省你时间的15个命令别名

    这篇文章主要给大家介绍了关于Linux中可以节省你时间的15个命令别名的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-09-09
  • linux服务器用centos还是ubuntu系统

    linux服务器用centos还是ubuntu系统

    两者同为目前版本中个人和小团队常用的服务级操作系统,在线提供的软件库中可以很方便的安装到很多开源的软件及库,不过问了多年维护服务器的朋友多用centos系统
    2012-12-12
  • ubuntu环境下安装memcache及启动的方法

    ubuntu环境下安装memcache及启动的方法

    这篇文章主要介绍了ubuntu环境下安装memcache及启动的方法,结合实例形式简单分析了ubuntu环境下memcache的安装、启动及简单测试方法,需要的朋友可以参考下
    2018-03-03
  • Linux下删除SVN版本库的详细过程

    Linux下删除SVN版本库的详细过程

    在Linux系统中,删除Subversion(SVN)版本库是一个相对简单的过程,然而,在执行删除操作之前,确保你已经备份了所有重要的数据,因为删除操作是不可逆的,本文将指导你如何安全地删除SVN版本库,需要的朋友可以参考下
    2025-02-02
  • linux下cat命令连接文件并打印到标准输出设备上

    linux下cat命令连接文件并打印到标准输出设备上

    这篇文章主要给大家介绍了关于在linux下cat命令连接文件并打印到标准输出设备上的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-07-07
  • Linux环境使用g++编译C++方法总结

    Linux环境使用g++编译C++方法总结

    本篇文章给大家分享了在Linux环境中用g++编译C++的方法以及相关实例代码分享,有兴趣的朋友学习下。
    2018-03-03

最新评论