网站搭建有3年多了,一直没有备案,最近备案成功,网站可以愉快地搭建在国内了,由于经费有限只能用得起阿里云虚拟主机,本文主要记录阿里云虚拟主机的基本建站操作。

域名绑定

  因为阿里云虚拟主机支持一个主机绑定多个域名,绑定后域名需解析生效,备案状态同时成功后才能正常访问。所以理论上来说我们可以用云虚拟主机搭建多个网站,首先绑定域名,绑定成功后,在强制HTTPS加密访问这一栏中选择开启。
  证书的话在SSL证书(应用安全)可以看到,自己申请个人免费证书,申请完下载证书,国光这里下载的是其他证书。证书开启成功后效果如下:
阿里云虚拟主机搭建多个网站

域名解析

  阿里云虚拟主机的底层是Apache实现网站解析的,知道这个我们可以利用.htaccess文件来灵活的解析域名。

解析2个静态网站

  假设有两个域名 www.a.comwww.b.com ,静态网站的源码分别在云虚拟主机的根目录(htdocs)的 www_awww_b目录下。
  首先需要在 / 目录建立 .htaccess 文件,内容如下:

# 开启Rewrite功能
 RewriteEngine On
# 将 www.a.com 解析到 /www_a 目录 
 RewriteCond %{HTTP_HOST} ^(www.)?a.com$
 RewriteCond %{REQUEST_URI} !^/www_a/
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)$ /www_a/$1
 RewriteCond %{HTTP_HOST} ^(www.)?a.com$
 RewriteRule ^(/)?$ www_a/ [L] 
# 将www.b.com 解析到/www_b 目录
 RewriteCond %{HTTP_HOST} ^(www.)?b.com$
 RewriteCond %{REQUEST_URI} !^/www_b/
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)$ /www_b/$1
 RewriteCond %{HTTP_HOST} ^(www.)?b.com$
 RewriteRule ^(/)?$ www_b/ [L]

之后分别在两个子目录 /www_a/www_b 建立 .htaccess 文件,内容分别如下:

/www_a/.htaccess

RewriteEngine On
RewriteBase /www_a
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /www_a/ [L]

/www_b/.htaccess

RewriteEngine On
RewriteBase /www_b
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /www_b/ [L]

完成以上步骤,则可以实现 www.a.com 访问 www_a目录,www.b.com 访问 www_b目录。

伪静态的配置

网站网站类型网站目录
www.php.comPHP开启了伪静态htdocs
www.sqlsec.comHexo纯静态Htdocs/sqlsec

国光的实际云虚拟主机的生产环境为大致如下:
htdocs/.htaccess

 RewriteEngine On
 RewriteBase /
 # www.sqlsec.com 目录解析
 RewriteCond %{HTTP_HOST} ^www\.sqlsec\.com$ [NC]
 RewriteCond %{REQUEST_URI} !^/sqlsec/
 RewriteRule ^(.*)$ sqlsec/$1?Rewrite [L,QSA]\
 # php伪静态 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule . /index.php [L]%

htdocs/sqlsec/.htaccess

 RewriteEngine On
 RewriteBase /
 #只许绑定的域名访问
 RewriteCond %{HTTP_HOST} !^www\.sqlsec\.com$ [NC]
 RewriteRule (.*) https://www.sqlsec.com/$1 [L,R=301]
 #对绑定目录下与 同名的目录的处理
 RewriteCond %{REQUEST_URI} ^\/sqlsec\/ [NC]
 RewriteCond %{QUERY_STRING} !^(.*)?Rewrite
 RewriteRule ^(.*)$ /%{REQUEST_URI}/%{REQUEST_URI}/$1?Rewrite [L,QSA]%

这样配置后就可以完美的处理好PHP的伪静态和Hexo纯静态同时完美解析了

题外话

  阿里云虚拟主机搭建网站的速度好快呀,国内的速度完爆阿里云的轻量云服务器,下面是相关速度展示图:

Ping检测
阿里云虚拟主机搭建多个网站
国内测速
阿里云虚拟主机搭建多个网站
  下面来一个 阿里云虚拟主机和阿里云轻量应用服务器的网站速度对比吧:
阿里云虚拟主机搭建多个网站
  平均速度 将近10倍的速度差距呀,总的来说 备案把网站迁移到 国内 值!

文章作者: 国光
文章链接: https://www.sqlsec.com/2019/12/aliyun.html