阿里云虚拟主机搭建多个网站

阿里云虚拟主机支持 一个主机绑定多个域名。域名绑定后, 需要先完成解析并备案成功, 网站才能正常访问。

因此, 理论上我们可以在一台虚拟主机上搭建多个网站。

域名绑定

首先, 在阿里云虚拟主机控制台中绑定需要使用的域名。绑定完成并生效后, 便可以通过 .htaccess 文件对不同域名进行目录解析。

域名绑定

解析两个静态网站

阿里云虚拟主机底层使用 Apache 提供网站服务, 因此可以通过 .htaccess 文件来实现灵活的域名解析。

网站 类型 目录
www.aaa.com 静态文件 htdocs/www.aaa.com
www.bbb.com Hugo 纯静态 htdocs/www.bbb.com

网站源码存放在虚拟主机 htdocs 目录下的子目录

.
└── htdocs
    ├── .htaccess
    ├── logreport
    ├── www.aaa.com
    └── www.bbb.com

htdocs 目录下建立一个 .htaccess 文件, 内容如下:

# 开启 Rewrite 功能
RewriteEngine On

# 将 www.aaa.com 解析到  /www.aaa.com 目录
RewriteCond %{HTTP_HOST} ^(www.)?aaa.com$
RewriteCond %{REQUEST_URI} !^/www.aaa.com/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /www.aaa.com/$1
RewriteCond %{HTTP_HOST} ^(www.)?aaa.com$
RewriteRule ^(/)?$ www.aaa.com/ [L]

# 将 www.bbb.com 解析到 /www.bbb.com 目录
RewriteCond %{HTTP_HOST} ^(www.)?bbb.com$ 
RewriteCond %{REQUEST_URI} !^/www.bbb.com/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /www.bbb.com/$1 
RewriteCond %{HTTP_HOST} ^(www.)?bbb.com$ 
RewriteRule ^(/)?$ www.bbb.com/ [L]

这样就能实现:

  • www.aaa.com 访问 /www.aaa.com 目录
  • www.bbb.com 访问 /www.bbb.com 目录

PHP 伪静态与静态网站共存

实际生产环境中, 可能需要同时运行 动态网站 (PHP)静态网站 (Hugo 等)

例如, 虚拟主机目录结构如下:

网站 类型 目录
www.aaa.com PHP (支持伪静态) htdocs/www.aaa.com
www.bbb.com Hugo 纯静态 htdocs/www.bbb.com

htdocs/.htaccess

RewriteEngine On
RewriteBase /

# 将 www.aaa.com 解析到 /www.aaa.com 目录
RewriteCond %{HTTP_HOST} ^www\.aaa\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/www\.aaa\.com/
RewriteRule ^(.*)$ /www.aaa.com/$1 [L,QSA]

# 将www.bbb.com 解析到 /www.bbb.com 目录
RewriteCond %{HTTP_HOST} ^www\.bbb\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/www\.bbb\.com/
RewriteRule ^(.*)$ /www.bbb.com/$1 [L,QSA]

接着, 在每个子目录中分别建立 .htaccess 文件, 内容如下:

htdocs/www.aaa.com/.htaccess

RewriteEngine On
RewriteBase /www.aaa.com

# PHP 伪静态, 把所有非真实文件/目录请求交给 index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /www.aaa.com/index.php [L]

htdocs/www.bbb.com/.htaccess

RewriteEngine On
RewriteBase /www.bbb.com

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /www.bbb.com/index.html [L]

通过这样的配置, 就可以完美的处理 PHP 伪静态规则Hugo 纯静态网站


原文

阿里云虚拟主机搭建多个网站

最后更新于 2025-08-26