在前面我们更改httpd.conf的时候已经出现了allow,deny这两个关键词,其实这节最核心的东西就是这两个。
首先举个例子
Order deny,allow
deny form all
allow form 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
这个就会deny所有了,127.0.0.1也会被deny。因为顺序是先allow然后deny,虽然一开始allow了127.0.0.1,但是后面有拒绝了它。
Order allow,deny
deny from all
上面的规则就表示,全部都不能通过
Order deny,allow
deny from all
上面的规则表示,全部都不能通过
Order deny,allow
只有顺序,没有具体规则,表示,全部都可以通行(默认的),因为allow在最后了。
Order allow,deny
这个表示,全部不能通行(默认的),因为deny在最后了。
讲完了allow ,deny我们再来看看具体的应用吧。
(1)某个目录做限制,比如该目录很重要,只允许我们公司的IP访问,当然这个目录可以使网站根目录,也就是整个站点都要做限制了。
<Directory /data/www/>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>
说明:只允许127.0.0.1访问,其他IP全部拒绝掉。
(2)针对请求的uri去限制,前面安装的discuz论坛,访问后台是admin.php,那我们就可以针对admin.php做限制。
<filesmatch "(.*)admin(.*)">
Order deny ,allow
Deny from all
Allow from 127.0.0.1
</filesmatch>
说明:这里用到了filesmatch语法,表示匹配的意思。