【问题标题】:.htaccess deny all except some directories.htaccess 拒绝除某些目录之外的所有内容
【发布时间】:2012-06-20 21:03:43
【问题描述】:

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

示例目录结构:

/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 的插件),每个用户提供的文件夹可能有一个“公共”目录,只有“公共”中的文件和文件夹应该可以访问。

【问题讨论】:

    标签: apache .htaccess


    【解决方案1】:

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

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

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

    SetEnvIf Request_URI ^/[^/]+/public/ ispublic=1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-08
      • 1970-01-01
      • 2012-11-04
      • 1970-01-01
      • 2020-02-19
      • 2012-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多