【发布时间】:2014-09-17 22:43:12
【问题描述】:
对于一个运行 apache 2.4.7 的 Ubuntu 14.04 上的网站,我有如下目录结构:
/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_access_compat 并使用旧式配置)?
【问题讨论】:
-
我还用
/websites/mywebsite/folder/subfolder/中的.htaccess 文件做了一个测试。所有其他 .htaccess 文件已被删除。 Apache 仍然声称“此处不允许”,即使 apache 文档明确表示此处允许:httpd.apache.org/docs/current/mod/mod_authz_core.html#require
标签: apache .htaccess permissions access-control