如果基于 IP 的 apache 虚拟主机中有两个文档根位置会发生什么?

如果基于 IP 的 apache 虚拟主机中有两个文档根位置会发生什么?

我的 apache 配置中有此虚拟主机条目。服务器只有一个 IP 地址。如果我在浏览器中输入服务器 IP 地址,内容将从哪个位置提供?“/opt/bitnami/apache2/htdocs”或“/opt/bitnami/apps/wordpress/htdocs”。嗯,在我的测试中,它显示内容是从“/opt/bitnami/apps/wordpress/htdocs”提供的。我想知道为什么。

<VirtualHost _default_:80>
 DocumentRoot "/opt/bitnami/apache2/htdocs"
  DocumentRoot "/opt/bitnami/apps/wordpress/htdocs"

<Directory "/opt/bitnami/apache2/htdocs">
      Require all granted
</Directory>
<Directory "/opt/bitnami/apps/wordpress/htdocs">
      Require all granted
</Directory>

</VirtualHost>

答案1

好吧好吧好吧,看来 apache 占用了最后一个 DocumentRoot。我像下面这样切换了文档根目录,apache 开始提供“/opt/bitnami/apache2/htdocs”中的内容

<VirtualHost _default_:80>
  DocumentRoot "/opt/bitnami/apps/wordpress/htdocs"
 DocumentRoot "/opt/bitnami/apache2/htdocs"

<Directory "/opt/bitnami/apache2/htdocs">
      Require all granted
</Directory>
<Directory "/opt/bitnami/apps/wordpress/htdocs">
      Require all granted
</Directory>

</VirtualHost>

答案2

DocumentRoot是设置值的指令。由于在给定上下文中只能有一个,因此每个后续调用都会覆盖前一个。因此最后一个调用将获胜(对于该特定上下文)。

在相同上下文中使用两个指令似乎没用,因为只有第二个指令才重要。

相关内容