Apache访问控制

在前面我们更改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语法,表示匹配的意思。