Apache 拒绝访问子目录

Apache 拒绝访问子目录

我的目标是拒绝访问某些子目录。我的本地主机配置允许像这样覆盖:

    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>

我在 /var/www/ 中还有一个 .htaccess 文件,其内容为:

    <Directory /var/www/*>
            Order allow,deny
            allow from all
    </Directory>

上述规则规定每个人都可以访问,但我的服务器响应内部错误。“cat /var/log/apache2/error.log | tail -n 10”给出:

    [Thu Feb 23 12:41:09 2012] [alert] [client 127.0.0.1] /var/www/.htaccess: <Directory not allowed here"

为什么会这样?任何有关此问题的详尽指南的链接也非常感谢。谢谢。

答案1

错误消息非常清楚。您必须删除

<Directory> and </Directory>

来自您的 .htaccess 文件。.htaccess将自动应用于您将其放入的目录,因此无需<Directory>在您的 中引用指令.htaccess。最重要的是,apache 文档明确提到<Directory>指令具有服务器配置和虚拟主机范围(http://httpd.apache.org/docs/2.0/mod/core.html#directory)——意味着你只能将它们放入httpd.conf(即主配置)和<VirtualHost>指令中

相关内容