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