Apache 虚拟主机 + 不同域名 配置教程

一、核心原理

给每个虚拟主机配置 不同的 ServerName(域名),Apache 会自动根据访问的域名,打开对应的网站。

二、3 步完成配置(Windows / Linux 通用)

第 1 步:准备网站目录

先给每个域名建一个独立文件夹,放不同网页。

Windows(XAMPP)

plaintext
D:\xampp\htdocs\site1  → 对应 www.aaa.com
D:\xampp\htdocs\site2  → 对应 www.bbb.com

Linux

bash
运行
mkdir -p /var/www/site1
mkdir -p /var/www/site2

第 2 步:配置虚拟主机(核心)

配置文件位置

  • Windows XAMPPxampp/apache/conf/extra/http-vhosts.conf
  • Linux CentOS/etc/httpd/conf.d/vhost.conf
  • Linux Ubuntu/etc/apache2/sites-available/000-default.conf

直接复制这段配置(改域名和路径即可)

apache
# 域名1:www.aaa.com
<VirtualHost *:80>
    ServerName www.aaa.com
    DocumentRoot "D:/xampp/htdocs/site1"

    <Directory "D:/xampp/htdocs/site1">
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

# 域名2:www.bbb.com
<VirtualHost *:80>
    ServerName www.bbb.com
    DocumentRoot "D:/xampp/htdocs/site2"

    <Directory "D:/xampp/htdocs/site2">
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
Linux 版本只需改路径:
apache
DocumentRoot /var/www/site1

第 3 步:重启 Apache

  • Windows:XAMPP → Stop → Start
  • Linux
    bash
    运行
    systemctl restart httpd   # CentOS
    systemctl restart apache2 # Ubuntu
    

三、本地测试(没有真实域名也能测)

修改本机 hosts 文件,把域名指向本机 IP:

Windows

路径:
plaintext
C:\Windows\System32\drivers\etc\hosts
添加:
plaintext
127.0.0.1  www.aaa.com
127.0.0.1  www.bbb.com

Linux/Mac

路径:
plaintext
/etc/hosts
然后浏览器访问:
plaintext
http://www.aaa.com → 网站1
http://www.bbb.com → 网站2
能看到不同页面 = 成功 ✅

四、如果你有真实域名

只需做一步:

把域名解析到你的服务器 IP

  • 去域名控制台(阿里云 / 腾讯云)
  • 添加 A 记录
  • 指向服务器公网 IP
不用改 Apache 配置,直接生效!

五、最常见 3 个问题

  1. 所有域名打开同一个网站

    没写 ServerName(必须写域名)

  2. 访问域名显示 403

    缺少 <Directory> 权限

  3. 域名不生效

    没重启 Apache / 域名没解析


六、如果你要加 HTTPS(https://)

直接在 443 端口加配置即可:
apache
<VirtualHost *:443>
    ServerName www.aaa.com
    DocumentRoot "D:/xampp/htdocs/site1"
    SSLEngine on
    SSLCertificateFile "你的证书.crt"
    SSLCertificateKeyFile "你的私钥.key"
</VirtualHost>

总结

  1. 每个虚拟主机写 不同的 ServerName(域名)
  2. 每个域名对应 独立的网站目录
  3. 重启 Apache 完成
上一篇 华为CE-配置BFD for IPv6多跳检测
下一篇 U盘安装CentOS7提示“Warning :dracut-initqueue timeout - starting timeout scripts” 解决办法