十六、访问控制FilesMatch
<Files>指令提供了基于文件名的访问控制,类似于<Directory>和<Location>指令。它将配对一个</Files>指令。在此配置段中定义的指令将作用于其基本名称(不是完整的路径)与指定的文件名相符的对象。
<Files>段将根据它们在配置文件中出现的顺序被处理:在<Directory>段和.htaccess文件被处理之后,但在<Location>段之前。请注意:<Files>能嵌入到<Directory>段中以限制它们作用的文件系统范围。
举个例子说明,之前写过一篇关于防盗链的文章,里面用到了filesmatch:
SetEnvIfNoCase Referer "^$" local_ref
SetEnvIfNoCase Referer "www.a.com/.*$" local_ref
SetEnvIfNoCase Referer "a.com/.*$" local_ref
<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|jpeg|png|gif|js|css)"> //凡是匹配到连接中以txt/doc等结尾的,进行下面的策略匹配
Order Deny,Allow //匹配顺序 deny ,allow
Deny from all //拒绝所有
Allow from env=local_ref //允许标记为local_ref的Referer
</filesmatch>
<Directory /data/wwwroot/a.com>
<filesmatch "admin.php(.*)"> 根目录下有关于admin.php的页面,仅允许本机127.0.0.1访问
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</filesmatch>
</Directory>
能够看出filesmatch可以比directory更加匹配的更加的精确。