虚拟主机设置不起作用

Virtual Host setting not working

我在 vps 服务器上托管两个域。域,假设 www.abc.net(或 abc.net)和 www.xyz.net(或 xyz.net)具有以下配置

<VirtualHost *:80>
    ServerName abc.net
    ServerAlias www.abc.net
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/abc.net
    ErrorLog ${APACHE_LOG_DIR}/abc.net.error.log
    CustomLog ${APACHE_LOG_DIR}/abc.net.access.log combined
</VirtualHost>

<VirtualHost *:80>
    ServerName xyz.net
    ServerAlias www.xyz.net
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/xyz.net
    ErrorLog ${APACHE_LOG_DIR}/xyz.net.error.log
    CustomLog ${APACHE_LOG_DIR}/xyz.net.access.log combined
</VirtualHost>

除此之外,我还有默认的 apache2 00-default-site.conf(未更改)和 rutorrent.conf

<VirtualHost *:80>
    ServerAlias *
    DocumentRoot /var/www/
    CustomLog /var/log/apache2/rutorrent.log vhost_combined
    ErrorLog /var/log/apache2/rutorrent_error.log
    SCGIMount /rutorrent/RPC2 127.0.0.1:5000

    <Directory "/var/www/rutorrent">
            AuthName "user1"
            AuthType Basic
            Require valid-user
            AuthUserFile /var/www/rutorrent/.htpasswd
    </Directory>
</VirtualHost>

假设我的 ip 为 t.u.v.w 我有以下 /etc/hosts 文件集

127.0.0.1       localhost
127.0.1.1       template.pcsmarthosting.co.uk   template
t.u.v.w         abc.net
t.u.v.w         xyz.net

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback

我可以正确访问 www.abc.net,因为它会转到正确的文件夹,但是 www.xyz.net 会转到 /var/www/ 与 http://t.u.v.w

相同

www.xyz.net 即使它是唯一启用的站点也不起作用。

我该如何解决这个问题?

系统主机名可能是 www.xyz.net ,这意味着 000-default 的行为就好像它隐含地具有 "ServerName www.xyz.net" 一样。

您应该在 000-default 中放置一个虚拟的 ServerName,这样就没有风险了。