如何禁用Apache中的默认文档根?

我在运行Apache Httpd的服务器上托pipe了一些网站。 每个网站都有自己的域或子域和虚拟主机。 所以我不需要默认的文档根目录。 可以在/etc/httpd/conf/httpd.conf禁用DocumentRoot吗?

我不确定你想这样做。 如果apacheconfiguration中没有默认虚拟主机,则第一个定义的虚拟主机将成为默认主机。

你真正需要做的就是默认提供一个空白页面。

感谢其他答案。 我通过添加一个没有任何权限的默认虚拟主机来解决它。 全局DocumentRootServerName选项必须与虚拟主机中指定的选项匹配。

/etc/httpd/conf/httpd.conf中

 ... ServerName <server-ip>:80 DocumentRoot "/var/www/html" <Directory /> Order Deny,Allow Deny from all Options None AllowOverride None </Directory> ... 

/etc/httpd/conf.d/default.conf

 <VirtualHost *:80> ServerName <server-ip> DocumentRoot /var/www/html </VirtualHost> 

这样,当服务器被它的ip直接访问时,我得到了一个403 Forbidden消息,这正是我想要的。 如果我不需要/var/www/html一个现有的目录,那会更好,但是如果我指定了类似/dev/null东西,Apache会抱怨。

是和不

您可以注释掉或删除DocumentRoot指令,没有问题。 但是这并没有太多的实现,因为那样的话,它会默认到默认的目录PREFIX/htdocs/其中PREFIX是在你build立apache的时候设置的。

当你有虚拟主机设置的所有请求不是由明确configuration的虚拟主机处理由默认的虚拟主机(这通常是第一个,但httpd -S会告诉你)处理。