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 from all
deny from 219.204.253.8
#全部都可以通行
-------------------------------
Order deny,allow
deny from 219.204.253.8
allow from all
#全部都可以通行
-------------------------------
Order allow,deny
deny from 219.204.253.8
allow from all
#只有219.204.253.8不能通行
-------------------------------
Order allow,deny
allow from all
deny from 219.204.253.8
#只有219.204.253.8不能通行
-------------------------------
-------------------------------
Order allow,deny
deny from all
allow from 219.204.253.8
#全部都不能通行
-------------------------------
Order allow,deny
allow from 219.204.253.8
deny from all
#全部都不能通行
-------------------------------
Order deny,allow
allow from 219.204.253.8
deny from all
#只允许219.204.253.8通行
-------------------------------
Order deny,allow
deny from all
allow from 219.204.253.8
#只允许219.204.253.8通行
-------------------------------
--------------------------------
Order deny,allow
#全部都可以通行(默认的)
-------------------------------
Order allow,deny
#全部都不能通行(默认的)
-------------------------------
Order allow,deny
deny from all
#全部都不能通行
-------------------------------
Order deny,allow
deny from all
#全部都不能通行
-------------------------------
对于上面两种情况,如果换成allow from all,则全部都可以通行!
-------------------------------
Order deny,allow
deny from 219.204.253.8
#只有219.204.253.8不能通行
-------------------------------
Order allow,deny
deny from 219.204.253.8
#全部都不能通行
-------------------------------
Order allow,deny
allow from 219.204.253.8
#只允许219.204.253.8通行
-------------------------------
Order deny,allow
allow from 219.204.253.8
#全部都可以通行
-------------------------------
-------------------------------
order deny,allow
allow from 218.20.253.2
deny from 218.20
#代表拒绝218.20开头的IP,但允许218.20.253.2通过;而其它非218.20开头的IP也都允许通过。
-------------------------------
order allow,deny
allow from 218.20.253.2
deny from 218.20
#和上面的差不多,只是掉换的order语句中的allow、deny先后顺序,但最终结果表示全部都拒绝!
form:http://hi.baidu.com/enjoypain/blog/item/f48c7aecdba298d12f2e21ac.html
前段时间做了个Apache的HTTP代理服务器,其中的order allow,deny这部分弄的不太懂,于是上网找资料看,谁知道越看越糊涂,其中有些难以分辨对错甚至是误导。就像破解windows系统密码的一些文章那样,很多都是人云亦云的,并没有经过测试。废话少说,先把我经过测试后分析总结出来的结论show出来,相信这对大家的理解非常有帮助。
分享到:
相关推荐
这些方法基于Apache Web服务器中的`.htaccess`文件实现,通过设置`Order`指令以及`allow`和`deny`关键字来实现对访问者的控制。 #### `Order`指令的使用 `Order`指令决定了`allow`和`deny`指令的执行顺序。这里有...
### Apache的Order Deny Allow 设置详解 #### 一、引言 在Apache Web服务器的配置管理中,控制访问权限是一项非常重要的任务。通过合理的配置,我们可以有效地限制对特定目录或文件的访问,从而提高网站的安全性。...
`Order` 决定先应用 `Allow` 还是 `Deny` 规则,`Allow` 和 `Deny` 则分别定义允许和禁止访问的IP地址或域名。`DirectoryIndex` 指令设置默认的索引文件,例如 `index.html`、`index.htm` 或 `index.php`。 Apache ...
- `Order`和`Allow/Deny`:设置访问控制策略,先按`Order`指定的顺序(如`allow,deny`)处理,然后按照`Allow`和`Deny`的规则允许或拒绝指定IP或域名的访问。 3. **主页文件设置** - `DirectoryIndex`:定义当...
`Options`、`AllowOverride`、`Order`和`Allow/Deny`规则通常在这个上下文中定义。 - **`Options`**:允许启用或禁用特定目录的特性。`FollowSymLinks`允许使用符号链接,`ExecCGI`允许在此目录中执行CGI脚本,`...
- 其中`"path"`是要控制访问权限的目录路径,`Order allow,deny`表示先检查是否允许访问,再检查是否拒绝访问,`AllowFrom all`表示允许所有来源的访问。 - **DocumentRoot指令详解**: - `DocumentRoot`指令用于...
### CentOS 下 Apache 配置多域名或多端口映射详解 #### 一、概述 在 CentOS 系统中,Apache 是一个广泛使用的 Web 服务器软件,它可以用来托管多个不同的网站或应用服务。为了实现这一点,我们需要对 Apache 进行...
* Order:控制在访问时 Allow 和 Deny 两个访问规则哪个优先: + Allow:允许访问的主机列表(可用域名或子网,例如:Allow from 192.168.0.0/16)。 + Deny:拒绝访问的主机列表。 服务器的优化 服务器的优化是...
- `Allow`, `Deny`, `Order`: 控制访问权限,允许或禁止特定IP地址或网络段访问。 - `RewriteEngine` 和 `.htaccess`:启用URL重写功能,用于实现SEO优化或隐藏实际文件路径。 **4. 配置文件层次结构** 除了`httpd....
### Apache配置详解 #### 一、Apache基础配置 在配置Apache服务器时,核心配置文件`httpd.conf`至关重要。此文件决定了服务器的行为、性能以及安全等方面。以下将详细介绍`httpd.conf`文件中的关键配置项及其意义...
这里,`Options Indexes MultiViews`允许目录浏览和内容协商,`Order allow,deny`和`Allow from 192.168.1.0/24`限制了只有192.168.1.0/24网络内的客户端可以访问。 对于一个需要用户认证的`private`虚拟目录,如`/...
### Apache配置详解:深入解析与优化策略 #### 一、Apache服务器基础配置解析 Apache作为全球最广泛使用的Web服务器之一,其配置文件`httpd.conf`是管理与控制服务器行为的核心。以下是对部分关键配置项的详细解读...
### Apache目录权限设置详解 #### 一、Apache目录权限设置的重要性 在现代互联网环境中,Apache作为最广泛使用的Web服务器之一,其安全性尤为重要。通过合理的权限设置,不仅可以防止未经授权的访问,还能有效地...
6. **安全设置**: `Allow`, `Deny`和`Order`组合用于设置访问控制,防止未授权访问。`Options`和`DirectoryIndex`定义目录的默认行为。 7. **其他配置**: 包括SSI(Server Side Include)、CGI脚本、代理服务器、...
1. Allow/Deny/Order:控制哪些IP或网络可以访问服务器。 2. Require:Apache 2.4及更高版本中,用以设定访问控制的更精细策略。 3. AuthType/AuthName/Require:实现基于认证的安全访问。 七、错误日志与访问日志 ...
- `Order`: 决定`Allow`和`Deny`规则的执行顺序,例如`Order allow,deny`允许先匹配的`Allow`规则。 - `Allow`和`Deny`: 分别定义允许和禁止访问的IP或域名列表。 3. **服务器优化 - MPM(Multi-Processing ...