Ubuntu Apache 子域名不显示

Ubuntu Apache 子域名不显示

使用 Ubuntu 18.04

我有主网站www.example.com,所有文件都托管在其中/var/www/html/,并且运行正常。现在我想在子域中创建一个新网站www.blog.example.com

我为我的网络主机上的子域名创建了一个新的 DNS 记录,并确认它正常工作,当我 ping 时,www.blog.example.com我看到了正确的服务器 IP 地址。

我的目录结构如下;

  • /var/www/html(包含所有文件www.example.com
  • /var/www/blog.example.com(包含用于测试的单个 index.html 文件)

我为每个域名都配备了虚拟主机,内容如下;

/etc/apache2/sites-available/example.com.conf

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/html
    <Directory /var/www/html/rascal.ac.uk>
        AllowOverride all
        Order allow,deny
        allow from all
        Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    Include conf-available/serve-cgi-bin.conf
</VirtualHost>

/etc/apache2/sites-available/blog.example.com.conf

<VirtualHost *:80>
    ServerName blog.example.com
    DocumentRoot /var/www/blog.example.com
    <Directory /var/www/blog.example.com/>
        AllowOverride all
        Order allow,deny
        allow from all
        Require all granted
    </Directory>
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

还有/etc/apache2/sites-available/000-default.conf像这样的;

<VirtualHost *:80>
    DocumentRoot /var/www/html
    <Directory "/var/www/html">
        AllowOverride All
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

所有站点均已启用,并且我已多次重新加载/重新启动 apache。

当我访问时,www.example.com我可以看到我的主要网站,正如预期的那样。当我访问时,我也可以看到我的主要网站,我应该可以看到我的文件www.blog.example.com上的内容。index.html

如果我禁用 000-default.conf两个 URL 都显示了 的内容blog.example.com,问题可能出在这个文件中吗?

答案1

你有

ServerName blog.example.com

但这是不同于www.blog.example.com。因此 Apache 不会使用该 VirtualHost。它会转而使用默认 VirtualHost。添加

ServerAlias www.blog.example.com

应该可以修复它。请参阅服务器别名

当然,这些是示例名称。如果这不能解决问题,请编辑您的问题以显示真实的主机名。

相关内容