1

我有一个我希望拒绝访问的文件夹,但我希望有一个可访问的子目录(及其所有文件和任何子目录)。

示例目录结构:

/modules/
/modules/gallery/public/manifest.xml
/modules/gallery/public/js/core.js
/modules/gallery/public/css/master.css
/modules/news/public/images/status.png
/modules/news/public/css/style.css

.htaccess 文件需要在“模块”中,因为它的子目录是用户提供的(它们是 CMS 的插件),每个用户提供的文件夹可能有一个“公共”目录,并且只有“公共”中的文件和文件夹应该是可访问的。

4

1 回答 1

5

如果请求包含 a ,则可以设置环境变量,在modules目录/public/中的 htaccess 文件中执行以下操作:

SetEnvIf Request_URI /public/ ispublic=1
Order Deny,Allow
Deny from all
Allow from env=ispublic

如果您想更加严格,您可以调整/public/正则表达式以包含深度,例如,只有 1 个目录深入到modules

SetEnvIf Request_URI ^/[^/]+/public/ ispublic=1
于 2012-06-20T21:17:15.463 回答