Apache 的 order deny allow 设置说明

softyun3年前服务器97

所以,最常用的是:
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语句时),如果没有则按照语义分析。

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

解析关于wamp启动是80端口被占用的问题

问题如下:网上有关于这个处理办法,说道:VS2010在更新了SP1后,会在开机时自动启动一个服务,占用WAMP的80端口,导致WAMP无法正常启动Apache。提示信息:Your port 80 is...

BT宝塔面板更换网站PHP版本

宝塔BT面板可以安装多个PHP版本,宝塔面板下的网站可以自由切换PHP版本,新手站长网分享宝塔切换PHP版本的方法:更换PHP版本之前需要先安装PHP的各种版本,安装后才可以切换,如果已经安装可以直接...

如何免费获得mysql空间,免费mysql空间的来源和使用方法

1.什么是免费mysql空间?免费mysql空间是指提供免费的mysql数据库存储位置的服务。用户可以在该数据库中存储数据,供自己或他人使用。2.免费mysql空间的来源免费mysql空间的来源有很多...

使用phpstudy中域名管理菜单创建本地站点(图文)

phpStudy是一个PHP调试环境的程序集成包,是一个深受PHP学习者喜欢的php开发环境集成包。下面我们就继续结合图文的形式给大家介绍phpstudy配置本地站点的方法。首先下载安装好phpstu...

宝塔面板设置禁止通过IP直接访问网站防止恶意解析

宝塔服务器管理是现在非常流行的一款免费的 Linux 管理应用,作为不想做过多运维操作的可以使用这个可视化操作。今天这篇文章主要是说一下怎么使用宝塔面板来操作禁止通过 IP 直接访问我们的网站防止被恶...

空间网站,附详细介绍

什么是空间网站空间网站的特点及应用1.什么是空间网站空间网站是一种基于网络空间的个人网站,通过网站空间提供服务和资源。相对于传统网站,空间网站更加便捷、实用,是网站发展的趋势之一。2.空间网站的特点自...