在 ubuntu 上为域和子域创建虚拟主机

在 ubuntu 上为域和子域创建虚拟主机

我在 apache 服务器上运行了两个版本的应用程序。现在我必须将一个版本指向主域www.example.com,将另一个版本指向子域 mysite.example.com

我面临的挑战是,如果我仅输入,example.com它会转到mysite.example.com而不是www.example.com

.htaccess就重定向而言,我没有在文件中配置任何内容。此外www,和的 DNS 条目example.com都指向同一个 IP

我的配置文件如下:

这是子域名

    ServerName mysite.example.com
    #ServerAlias mysite.example.com      // not sure if i need alias
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/site1

    <Directory /var/www/html/site1>
     Options Indexes FollowSymLinks MultiViews
     AllowOverride All
     Order allow,deny
     allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

  </VirtualHost>

这个是主域名

 <VirtualHost *:80>

    ServerName www.example.com
    ServerAlias example.com      
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/site2

    <Directory /var/www/html/site2>
     Options Indexes FollowSymLinks MultiViews
     AllowOverride All
     Order allow,deny
     allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

  </VirtualHost>

我想为子域提供一个版本,为主域提供另一个版本,涵盖所有 URL 可能性。

有人能指出我哪里做错了吗?

答案1

我不是这方面的专家,但我自己也想运行一个具有在线功能的本地托管服务器,几个月前我确实运行过它,但现在我又回到了它,说实话有点生疏了,所以我正在重新学习一切,使用 VHosts 并设置本地服务器以便以后上线,而且...真是一团糟哈哈...但我看到的并引用的是:

我面临的挑战是,如果我只输入 example.com,它会转到 mysite.example.com 而不是 www.example.com。

但是你提到了配置以下代表您的子域名...在这种情况下,它应该被反转...您会看到您将主域名指向您的:“/var/www/我的网站”它应该用于您的子域名...mysite.example.com相反。所以我猜你混淆了目录的条目。这就是为什么你的主域,它将mysite.example.com而不是 www.example.com 因为您已经以相反的方式设置了配置 :D

ServerName mysite.example.com
#ServerAlias mysite.example.com      // not sure if i need alias
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html

<Directory /var/www/html>
 Options Indexes FollowSymLinks MultiViews
 AllowOverride All
 Order allow,deny
 allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

希望这有帮助。

相关内容