为什么基于名称的虚拟主机设置不起作用?

为什么基于名称的虚拟主机设置不起作用?

我有两个域(siteA.com 和 SiteB.com)指向同一个网络服务器,我想为每个域显示不同的网页。

我目前已采取的步骤如下:

将默认站点(siteA)复制到 siteB

1)sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/siteB 2)sudo vim /etc/apache2/sites-available/siteB

<VirtualHost *:80>
        ServerAdmin [email protected]

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

</VirtualHost *:80>

然后我在 /var/www/siteB 下创建并在其中创建了一个示例 index.html。

但是当我加载我的域名时,siteB.com我仍然被定向到/var/www/siteA。这是为什么呢?

我是否也必须将其重命名/etc/apache2/sites-available/default/etc/apache2/sites-available/siteA

更新:

感谢下面的答案,看来我忘记了除了启用该网站之外还有另一个条目:

<VirtualHost *:80>
            ServerAdmin [email protected]
            ServerName siteB.com
            ServerAlias www.siteB.com
</VirtualHost *:80>

为了包含所有子域名,请执行以下操作:

<VirtualHost *:80>
            ServerAdmin [email protected]
            ServerName siteB.com
            ServerAlias *.siteB.com
</VirtualHost *:80>

siteA 也同样如此。

答案1

您是否使用命令启用了 siteBa2ensite 站点B然后重新启动网络服务器?

答案2

我已经为虚拟主机问题苦苦挣扎了好几天...可能相关:这是我所遇到的:

<VirtualHost *:80>
     ServerName www.domain1.com
     ServerAlias domain1.com
     Include /etc/apache2/vhosts.d/domain1.include

     <IfModule mpm_peruser_module>
            ServerEnvironment apache apache
     </IfModule>
</VirtualHost>

<VirtualHost domain2:80>
    ServerAlias domain2.com
    ServerName www.domain2.com
    Include /etc/apache2/vhosts.d/domain2.include

    <IfModule mpm_peruser_module>
            ServerEnvironment apache apache
    </IfModule>
</VirtualHost>

domain1 正在发送 domain2 的内容!

最后我改变了

<VirtualHost domain2:80>

<VirtualHost *:80>

并且它成功了。

  • 基于“IP”的虚拟主机设置在域 2 上运行,该域具有与域 1 相同的 IP,并且从未查看过我的第一个 VirtualHost 条目

  • 标签需要与 IP [和端口] 相同,才能查看 ServerName 和 ServerAlias

希望这对某人有帮助。

相关内容