使用htaccess拒绝访问子目录

时间:2012-08-05 06:00:43

标签: .htaccess apache2

考虑Web根目录中的这些文件结构:

files/1/1.jpg
files/1/2.jpg
files/2/1.jpg
files/2/3.jpg
files/3/6.jpg
files/3/8.jpg
files/4/1.jpg

我想使用web根目录中存在的htaccess文件拒绝访问文件夹2和3中的文件。我尝试但没有发生任何事情。这是我使用的代码:

<FilesMatch "(2|3)\/*$" >
   Order deny,allow
   Deny from all
</FilesMatch>
你会纠正我的错误吗? 谢谢。

2 个答案:

答案 0 :(得分:1)

如果您的htaccess文件位于您的Web根目录中,并且files目录也位于Web根目录中,则您将无法与另一个(子)目录中的文件进行匹配。您可以尝试将<FilesMatch>放在files目录中的htaccess文件中,也可以在web根目录中的htaccess文件中使用mod_rewrite:

RewriteEngine On
RewriteRule ^files/(2|3)/ - [F,L]

答案 1 :(得分:0)

为了使用htaccess获得最佳性能,您应该在要保护的每个目录中创建一个.htaccess文件:

Order deny,allow
Deny from all