如何使用 htaccess 甚至 vhost.conf 禁止目录中除具有特定名称的任何子目录之外的所有内容?我有一个受保护的主目录,其中包含子目录。每个子目录都有另一个名为“thumbs”的子目录,我想允许人们访问它。在 thumbs 文件夹中,我有一些文件,它们的文件名都以“thumb_”前缀开头。那么应该使用哪种方法,.htaccess FilesMatch 还是 vhost DirectoryMatch?以及应该使用什么代码?谢谢
答案1
因此,如果我理解正确的话,您只希望允许名为 的文件thumb_*
位于名为 的目录中thumbs
,而该目录位于受保护目录的子目录中?不强制使用名为 的目录会更简单thumbs
,因为那时您只需要<FilesMatch>
。
听起来这条路径是,例如,/path/to/protected_dir/subdir/thumbs/thumb_1.png
如果正确的话,这应该会强制执行您正在寻找的限制类型 - 只需确保没有其他可能干扰权限设置的配置块:
<Directory /path/to/protected_dir>
Order Deny,Allow
Deny from all
</Directory>
<LocationMatch "^/url/path/to/protected_dir/[^/]+/thumbs/thumb_.*">
Allow from all
</LocationMatch>
如果您不担心强制执行精确的目录树结构,那么这会简单得多:
<Directory /path/to/protected_dir>
Order Deny,Allow
Deny from all
<FilesMatch "^thumbs_.*">
Allow from all
</FilesMatch>
</Directory>