我创建了一个虚拟主机,并试图通过对Require all denied使用directory指令来禁止对它的访问。

<VirtualHost *:80>
    DocumentRoot /var/www/test

    <Directory /var/www/test/>
        Require all denied
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

但是,用户仍然可以访问每个页面。我该怎么解决?

最佳答案

如果这些指令位于与当前请求不匹配的虚拟主机中,则它们不会执行任何操作。
virtualhost没有服务器名或服务器别名,这是将virtualhost用于请求的主要方式。
如果您认为配置被忽略,则步骤是验证此Virtualhost是否正在使用。一种简单的方法是为虚拟主机定义一个唯一的日志文件。你的看起来并不独特。

apachectl -S will quickly summarize your virtual hosts.

10-08 12:58