VirtualHost Apache 不提供子域名服务

VirtualHost Apache 不提供子域名服务

我已经设置了一个 Apache,它可以在端口 80 和 8080 上为我的网站提供服务。但现在我想将 8080 上的 VirtualHost 移动到子域中的端口 80。

这是我的站点可用的配置文件:

<VirtualHost *:80>
    ServerName www.mysite.me
    ServerAlias mysite.me
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    RewriteEngine on

    RewriteRule (.events\/+)(.*)$ http://www.mysite.me/evento.php?eventid=$2
    RewriteCond %{HTTP_HOST} ^mysite\.me
    RewriteRule ^(.*)$ http://www.mysite.me$1 [R=permanent,L]
</VirtualHost>

该虚拟主机不起作用:

<VirtualHost *:80>
        ServerName phpmyadmin.mysite.me
        DocumentRoot /var/www/html/phpMyAdmin
</VirtualHost>

如果我像这样为后者服务:

Listen 8080    
<VirtualHost *:8080>
            ServerName www.mysite.me
            DocumentRoot /var/www/html/phpMyAdmin
</VirtualHost>

它会起作用的。

但我想使用子域名(在本例中为 phpmyadmin.mysite.me)。

我错过了什么?

答案1

正如评论中指出的那样,在 Apache 的虚拟主机配置中,仅配置 sudomain 是设置的一部分。另一部分是,您还需要为该域正确配置 DNS。

您需要为子域名添加指向 Web 服务器的 A 记录或 CNAME 记录,以便nslookup your.sudomain.com 将返回您的网络服务器 IP 地址。

DNS 服务器配置取决于您使用的托管服务提供商或软件。在大多数情况下,如果您没有维护自己的 DNS 服务器,您可以登录托管服务提供商控制面板,并应该能够轻松添加它。

相关内容