要求全部否认不起作用。 要求所有允许的,作品

我有一个网站结构设置如下,我试图为每个组织的访问级别,但没有指定<Directory>因为这需要修复结构(也就是说,如果我复制到不同的网站,到一个子文件夹,它将需要编辑所有.htaccess到新的位置)。

  • / app / – 允许所有,拒绝configuration/等
  • / app / templates / – 全部拒绝
  • / app / templates / mytheme / – 只允许所有的图片,javascript,css,字体
  • / app / lib / – 全部拒绝

我试过实现Apache2.4的新(ish)指令scheme:

/etc/apache2/conf-enabled/security.conf

 ... more stuff above ... <Directory /> AllowOverride All Require all denied </Directory> ... more stuff below ... 

并且在应用程序的根目录中添加Require all allowed to .htaccess ,同时在我希望拒绝访问的文件夹中添加Require all denied to .htaccess

问题是Require all denied似乎绝对没有。 我已经看到使用mod_auth_compat或任何库的参考,但它似乎只是旧版本的Apache(V2.3)所必需的。

我在Debian 8上使用Apache 2.4。

以前,我会提供:

 Order Allow, Deny Deny from all 

然后将以下内容放入需要访问的文件夹中:

 Allow from all 

..和我需要只允许特定的文件types访问,

 <FilesMatch "\.(jpg|jpeg|gif|png|bmp|svg|css|less|sass|scss|js|ttf|woff|woff2|eot)$"> Allow from all </FilesMatch> 

根据apache的文档,混合新旧声明可能会出现意想不到的结果,因此我只使用新的声明。 没有stream浪的.htaccess文件或使用旧的声明格式加载的*.conf文件的权限 – 所以这应该工作?

鉴于我所布置的文件夹结构,以及在“/etc/apache2/conf-enabled/security.conf”中加载的内容(因为这是“根”声明为AllowOverride的位置[在指定时似乎不起作用在网站conf(000-default.conf)中的AllowOverride All使用相同的声明格式],有人可以提供一些指导或最好的工作解决scheme来解决这个问题。