这个东西确实挺容易让我们迷糊。其实也不难,只要你掌握这样一条规律即可:
首先举个例子:我们判断的依据是这样的:
1. 看Order后面的,哪个在前,哪个在后
2. 如果deny在前,那么就需要看deny from 这句,然后看allow from 这一句
3. 规则是一条一条的匹配的,不管是deny在前还是allow在前,都是会生效的。比如例子中,先deny 了所有,然后又allow了127.0.0.1,所以127.0.0.1是通过的。
不妨再多举几个例子:这个就会deny所有了,127.0.0.1也会被deny。因为顺序是先allow然后deny,虽然一开始allow了127.0.0.1,但是后面又拒绝了它。全部都不能通行全部都不能通行全部都可以通行(默认的),记住即可全部都不能通行(默认的),记住即可
首先举个例子:
- Order deny,allow
- deny from all
- allow from 127.0.0.1
1. 看Order后面的,哪个在前,哪个在后
2. 如果deny在前,那么就需要看deny from 这句,然后看allow from 这一句
3. 规则是一条一条的匹配的,不管是deny在前还是allow在前,都是会生效的。比如例子中,先deny 了所有,然后又allow了127.0.0.1,所以127.0.0.1是通过的。
不妨再多举几个例子:
- Order allow,deny
- deny from all
- allow from 127.0.0.1
- Order allow,deny
- deny from all
- Order deny,allow
- deny from all
- Order deny,allow
- Order allow,deny
0
Order指令控制默认的访问状态,与Allow和Deny指令生效的顺序。
Ordering取值范围是以下几种范例之一:
Deny,Allow
Deny指令在Allow指令之前被评估。默认允许所有访问。任何不匹配Deny指令或者匹配Allow指令的客户都被允许访问。
Allow,Deny
Allow指令在Deny指令之前被评估。默认拒绝所有访问。任何不匹配Allow指令或者匹配Deny指令的客户都将被禁止访问。
关键字Allow,Deny只能用逗号分隔;它们之间不能有空格。
apache.org域中所有主机都允许访问,而其他任何主机的访问都将被拒绝:
Deny,Allow默认状态是允许所有访问,后面限制了所有主机都不能访问(deny),但是 apache.org可以访问。
Order Deny,Allow
Deny from all
Allow from apache.org
Allow,Deny默认状态是拒绝对服务器的访问,后面限制apache.org域中所有主机可访问(allow),但foo.apache.org子域拒绝(deny)
Order Allow,Deny
Allow from apache.org
Deny from foo.apache.org
可以这样理解:
Deny,Allow默认状态是允许所有访问,然后反悔了使用deny不放行一些条件,然后又反悔了使用(allow)放行 一些(deny不允许的)条件。如果没有deny条件,后面allow没意义。
Allow,Deny默认状态是拒绝所有访问,然后反悔了使用allow放行了一些条件,然后又反悔了使用(deny)不放行一些(allow允许的)条件。如果没有allow条件,后面deny没意义。
解析下这个含义:
Order Allow,Deny
拒绝/data/www/data下所有的访问。
Ordering取值范围是以下几种范例之一:
Deny,Allow
Deny指令在Allow指令之前被评估。默认允许所有访问。任何不匹配Deny指令或者匹配Allow指令的客户都被允许访问。
Allow,Deny
Allow指令在Deny指令之前被评估。默认拒绝所有访问。任何不匹配Allow指令或者匹配Deny指令的客户都将被禁止访问。
关键字Allow,Deny只能用逗号分隔;它们之间不能有空格。
apache.org域中所有主机都允许访问,而其他任何主机的访问都将被拒绝:
Deny,Allow默认状态是允许所有访问,后面限制了所有主机都不能访问(deny),但是 apache.org可以访问。
Order Deny,Allow
Deny from all
Allow from apache.org
Allow,Deny默认状态是拒绝对服务器的访问,后面限制apache.org域中所有主机可访问(allow),但foo.apache.org子域拒绝(deny)
Order Allow,Deny
Allow from apache.org
Deny from foo.apache.org
可以这样理解:
Deny,Allow默认状态是允许所有访问,然后反悔了使用deny不放行一些条件,然后又反悔了使用(allow)放行 一些(deny不允许的)条件。如果没有deny条件,后面allow没意义。
Allow,Deny默认状态是拒绝所有访问,然后反悔了使用allow放行了一些条件,然后又反悔了使用(deny)不放行一些(allow允许的)条件。如果没有allow条件,后面deny没意义。
解析下这个含义:
Order Allow,Deny
拒绝/data/www/data下所有的访问。
编辑回复