网站搭建有 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.com PHP 开启了伪静态 htdocs
www.sqlsec.com Hexo 纯静态 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 倍的速度差距呀,总的来说 备案把网站迁移到国内值!

支持一下

本文可能实际上也没有啥技术含量,但是写起来还是比较浪费时间的,在这个喧嚣浮躁的时代,个人博客越来越没有人看了,写博客感觉一直是用爱发电的状态。如果你恰巧财力雄厚,感觉本文对你有所帮助的话,可以考虑打赏一下本文,用以维持高昂的服务器运营费用(域名费用、服务器费用、CDN费用等)

微信
支付宝

没想到文章加入打赏列表没几天 就有热心网友打赏了 于是国光我用 Bootstrap 重写了一个页面用以感谢支持我的朋友,详情请看 打赏列表 | 国光