访问控制 – FilesMatch目录概要
<Directory /data/wwwroot/www.123.com> //功能作用目录
<FilesMatch "admin.php(.*)"> //针对admin.php(.*)这个类型的文件,进行控制
Order deny,allow
Deny from all
Allow from 127.0.0.1
</FilesMatch>
</Directory>
访问控制 – FilesMatch
- 访问控制,除了目录形式,还是文件名去匹配(或链接)
- 打开虚拟主机配置文件
- 首先定义一个Directory,然后在下面在定义一个FilesMatch
[root@hf-01 111.com]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<Directory /data/wwwroot/111.com>
<FilesMatch "admin.php(.*)">
Order deny,allow
Deny from all
Allow from 127.0.0.1
</FilesMatch>
</Directory>
- 检查语法错误,并重新加载配置文件
[root@hf-01 111.com]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@hf-01 111.com]# /usr/local/apache2.4/bin/apachectl graceful
[root@hf-01 111.com]#
- 测试
这里没有对admin目录做任何限制,做的FilesMatch跟这个不匹配,没有遇到控制语句,所以访问是404
[root@hf-01 111.com]# curl -x192.168.202.150:80 111.com/admin/dsfsdfdsf -I
HTTP/1.1 404 Not Found
Date: Tue, 26 Dec 2017 13:48:45 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
Content-Type: text/html; charset=iso-8859-1
[root@hf-01 111.com]#
有特殊符号需要用 ” 单引号括起来
[root@hf-01 111.com]# curl -x192.168.202.150:80 '111.com/admin.php?dsfsdfdsf' -I
HTTP/1.1 403 Forbidden
Date: Tue, 26 Dec 2017 13:49:44 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
Content-Type: text/html; charset=iso-8859-1
[root@hf-01 111.com]# curl -x127.0.0.1:80 '111.com/admin.php?dsfsdfdsf' -I
HTTP/1.1 404 Not Found
Date: Tue, 26 Dec 2017 13:53:52 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
Content-Type: text/html; charset=iso-8859-1
[root@hf-01 111.com]#
总结
- Directory和FilesMatch 功能是一样的,只不过有时仅仅想针对一个访问的链接去做控制,那么再去控制目录则不太合适,FilesMatch可以满足一些比较个性化的需求