二、Deny 指令
其作用是: 控制哪些主机被禁止访问服务器。这条指令允许基于主机名、IP地址或者环境变量限制对服务器的访问。
Deny指令的参数设置和Allow指令完全相同。
三、Order 指令
作用: 控制缺省的访问状态和Allow与Deny指令被评估的顺序。
语法: Order ordering
默认值: Order Deny,Allow
Order指令控制缺省的访问状态和 Allow与Deny指令被评估的顺序。
Ordering是以下几种范例之一:
Deny,Allow
Deny指令在 Allow指令之前被评估。缺省允许所有访问。 任何不匹配Deny指令或者匹配 Allow指令的客户都被允许访问服务器。
Allow,Deny
Allow指令在Deny指令之前被评估。缺省禁止所有访问。
任何不匹配Allow指令或者匹配Deny指令的客户都将被禁止访问服务器。
Mutual-failure
只有出现在Allow列表并且不出现在 Deny列表中的主机才被允许访问。 这种顺序与Order Allow,Deny具有同样效果,不赞成使用,它包括了哪一种配置。
关键字只能用逗号分隔;它们之间不能有空格。注意在所有情况下每个Allow和Deny指令语句都将被评估。
在下面的例子中,apache.org域中所有主机都允许访问,而其他任何主机访问都被拒绝。
Order Deny,Allow
Deny from all
Allow from apache.org
下面例子中,apache.org域中所有主机,除了foo.apache.org子域包含的主机被拒绝访问以外,都允许访问。 而所有不在apache.org域中的主机都不允许访问,因为缺省状态是拒绝对服务器的访问。
Order Allow,Deny
Allow from apache.org
Deny from foo.apache.org
另一方面,如果上个例子中的Order指令改变为Deny,Allow, 将允许所有主机的访问。这是因为,不管配置文件中指令的实际顺序如何, Allow from apache.org指令会最后被评估到并覆盖之前的 Denyfrom foo.apache.org。所有不在apache.org 域中的主机也允许访问是因为缺省状态被改变到了允许。
即使没有伴随Allow和Deny指令,一个Order 指令的存在也会影响到服务器上某一个部分的访问, 这是由于他对缺省访问状态的影响。例如,
<Directory /www>
Order Allow,Deny
</Directory>
这样将会禁止所有对/www目录的访问,因为缺省状态将被设置为拒绝。
Order指令只在服务器配置的每个段内部控制访问指令的处理。 这暗示着,例如,一个在<Location>段出现的 Allow或者Deny指令总是将会在一个<Directory>段或者 .htaccess文件中出现的 Allow或Deny 指令之后被评估,而不管Order指令中的设置为何。