在.htaccess文件中,FilesMatch和Files指令的作用都是限制对特定文件的访问。
Files指令可以精确匹配一个文件名来进行限制,而FilesMatch指令则允许使用正则表达式来匹配多个文件名或者路径,并进行限制。
在.htaccess文件中添加以下代码来禁止访问指定文件
# 使用Files指令禁止访问example.txt文件
<Files "example.txt">
Order allow,deny
Deny from all
</Files>
该代码使用了Apache的mod_authz_host模块中的Deny指令,它将阻止所有对指定文件的HTTP请求。
# 使用FilesMatch指令通过正则表达式禁止访问txt和html文件
<FilesMatch ".(txt|html)$">
Order allow,deny
Deny from all
</FilesMatch>
使用FilesMatch指令来通过正则表达式匹配多个文件名或者路径进行限制。
实例1:使用引号将文件名通配符和后缀名通配符括起来。这种方式更加明确,只能匹配特定后缀名的文件
<FilesMatch ".(back|bak|db|dat|sql|zip|gz|old|p1|pe)$">
Order allow,deny
deny from all
</FilesMatch>
实例2:使用括号将文件名通配符和后缀名通配符括起来。这种方式更加灵活,可以匹配包含其他字符在内的文件名
<FilesMatch (.*).(back|bak|db|dat|sql|zip|gz|old|p1|pe)$>
Order allow,deny
deny from all
</FilesMatch>