如何使用Require指令限制apache 2.4中的文件访问

时间:2014-07-26 01:07:57

标签: apache .htaccess permissions access-control

对于Ubuntu 14.04上的网站,我有一个如下目录结构,运行apache 2.4.7:

/websites/mywebsite/index.htm
/websites/mywebsite/private.htm
/websites/myqwbsite/folder/privatefile.ext
/websites/mywebsite/folder/subfolder/publicfile.ext

在网站的Apache配置中,我有

<Directory /websites/mywebsite/>
   AllowOverride Limit
   Require all granted
</Directory>

我想在站点文件夹中使用.htaccess文件,以使private.htm和privatefile.ext文件为Require all denied,但其他所有文件都被授予。

我尝试了以下两个.htaccess文件:

/websites/mywebsite/.htaccess:

<FilesMatch (private.*.htm)$>
   Require all denied
</FilesMatch>

/websites/mywebsite/folder/.htaccess

Require all denied

/websites/mywebsite/folder/subfolder/.htaccess

Require all granted

但是,apache为/websites/mywebsite/.htaccess

提供了500 - “此处不允许”

如何使用apache 2.4兼容配置(即我不想加载mod_authz_compat并使用旧样式配置)来实现我想要的功能?

1 个答案:

答案 0 :(得分:4)

在网站的apache配置中,您必须扩展AllowOverride属性。添加:FileInfo和AuthConfig。或者设置&#34; AllowOverride All&#34;

我有同样的问题,用此配置修复:

<Directory /websites/mywebsite/>
   Options +FollowSymLinks +SymLinksIfOwnerMatch
   AllowOverride FileInfo AuthConfig
</Directory>