Apache 上 Drupal 站点的意外虚拟主机行为

Unexpected virtual host behavior of Drupal sites on Apache

我是 运行 CentOS 7 机器上的 Apache 服务器。

一个月前,我在 /var/www/html/site1 下创建了一个新的 Drupal 站点(我们称之为 site1)。 访问 http://<server-ip>/site1 正确生成 site1

今天,为了给一个新客户提供测试环境,我不得不为一个新的Drupal站点创建一个虚拟主机(姑且称之为site2)。

所以我创建了以下虚拟主机规则:

<VirtualHost *:80>
        ServerAdmin test@email.com
        ServerName site2.dev
        DocumentRoot /var/www/html/site2
        <Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>
</VirtualHost>

之后,我创建了网站的文件夹 /var/www/html/site2 并安装了 Drupal。访问 http://site2.dev 会正确生成 site2

问题是,如果我现在访问 http://<server-ip>/site1,会显示 site2

我不知道可能是什么问题。这两个站点在完全不同的路径和不同的数据库上,所以我认为一个不应该影响另一个。

因为我今天从字面上定义了我的第一个虚拟主机,所以我想知道是否有人可以帮助我解释这个问题。提前致谢!

好的,我误解了你的问题,以为你有 2 个域。

你的site1是通过没有子目录的IP访问的吗?在这种情况下 : 将 DocumentRoot 更改为指向 /var/www/html,然后 IP/site1 和 IP/site2.

将访问这两个站点

如果您已经准备好通过 url IP/site1 访问 site1,那么您无需更改任何内容,无需新虚拟主机即可访问 IP/site2,仅指向 site2 目录... .

根据 Laurent 的回答,这是我最终使用的配置:

# So all IP only paths continue to work
<VirtualHost *:80>
        DocumentRoot /var/www/html/
        ServerName 10.10.10.10          # Server's IP
        <Directory /var/www/html/>
                Options FollowSymLinks
                AllowOverride All
        </Directory>
</VirtualHost>

# So site2.dev points to its folder
<VirtualHost *:80>
        DocumentRoot /var/www/html/site2
        ServerName site2.dev
        <Directory /var/www/html/site2>
                Options FollowSymLinks
                AllowOverride All
        </Directory>
</VirtualHost>