LAMP架構十六(Apache配置FilesMatch訪問控制)【完】
十六、訪問控制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更加匹配的更加的精確。