阿里云·万网虚拟机安装多站点教程

  • 11
  • 3,083 views
  • A+
所属分类:wordpress

八月份在淘宝上买了一个阿里云·万网基础版虚拟机120元(官方价288),2G空间、100M数据库、月流量20G、并发150个连接、千兆共享,支持绑定30个域名;

之所以没有选VPS的原因是国内带宽太贵而且1M起步,最低都要480一年,所以感觉不划算,还有个问题是我现在不是很喜欢折腾运行环境,用虚拟机省事专心建站就好了;

我手下目前有四个流量不大的站点,其中三个小的可怜流量可以忽略不计,也就本博客一个月有个那么3万ip流量,并且我的站点图片和视频托管在七牛上,这样一来2G空间跟20G流量一个月是足够满足需求的;

这次遇到的问题是,阿里云·万网虚拟机可以绑定三十个域名但是在控制面板中无法直接建立多站点,官方这方面有点坑,说是支持30个域名却不能直接建立30个对应的不同站点那还有个鸟用,正常站点谁会吃饱了绑定30个域名呢~~

不过呢可以通过分布式配置文件.htaccess来手动实现多站点功能

阿里云·万网虚拟机安装多站点教程

首先新建一个.htaccess文件放ftp下的htdocs目录中,这个用来引导不同域名访问对应目录下的网站;
比如我把www.5yun.org这个域名绑定在了5yun这个目录下面,www.zhousiyu.com这个域名绑定在了siyu这个目录下面

.htaccess配置内容如下:

RewriteEngine On
RewriteBase /

# 绑定域名5yun.org及www.5yun.org到5yun目录
RewriteCond {81884d97e9b29c62b51e96f64ab73971eea5e110197642196c83fe2aecc74b14}{HTTP_HOST} ^(www\.)?5yun\.org$ [NC]
RewriteCond {81884d97e9b29c62b51e96f64ab73971eea5e110197642196c83fe2aecc74b14}{REQUEST_URI} !^/5yun/
RewriteCond {81884d97e9b29c62b51e96f64ab73971eea5e110197642196c83fe2aecc74b14}{REQUEST_FILENAME} !-f
RewriteCond {81884d97e9b29c62b51e96f64ab73971eea5e110197642196c83fe2aecc74b14}{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ 5yun/$1
RewriteCond {81884d97e9b29c62b51e96f64ab73971eea5e110197642196c83fe2aecc74b14}{HTTP_HOST} ^(www\.)?5yun\.org$ [NC]
RewriteRule ^(/)?$ 5yun/index.php [L]



# 绑定域名zhousiyu.com及www.zhousiyu.com到siyu目录
RewriteCond {81884d97e9b29c62b51e96f64ab73971eea5e110197642196c83fe2aecc74b14}{HTTP_HOST} ^(www\.)?zhousiyu\.com$ [NC]
RewriteCond {81884d97e9b29c62b51e96f64ab73971eea5e110197642196c83fe2aecc74b14}{REQUEST_URI} !^/siyu/
RewriteCond {81884d97e9b29c62b51e96f64ab73971eea5e110197642196c83fe2aecc74b14}{REQUEST_FILENAME} !-f
RewriteCond {81884d97e9b29c62b51e96f64ab73971eea5e110197642196c83fe2aecc74b14}{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ siyu/$1
RewriteCond {81884d97e9b29c62b51e96f64ab73971eea5e110197642196c83fe2aecc74b14}{HTTP_HOST} ^(www\.)?zhousiyu\.com$ [NC]
RewriteRule ^(/)?$ siyu/index.php [L]

也就是说这个.htaccess文件负责引导对应域名访问指定目录下的站点;通过这个设置已经可以正常访问绑定的域名站点;
至此还没有完,因为两个域名之间可以跨域访问,非常不利于SEO,比如可以用www.5yun.org/siyu来访问www.zhousiyu.com的站点,搜索引擎会被访问到跨域网址;这对优化很不利,所以要禁止跨域加载问题;

进入到5yun目录下编辑.htaccess这个文件

阿里云·万网虚拟机安装多站点教程

.htaccess内容如下

RewriteEngine On
# 禁止通过非本网站域名访问
RewriteCond {81884d97e9b29c62b51e96f64ab73971eea5e110197642196c83fe2aecc74b14}{HTTP_HOST} !^(www.)?5yun.org$ [NC]
RewriteRule ^.*$ [L,r=404]

有多少个站点就要分别对每个站点添加这样的限制访问规则,这样就不怕跨域访问问题了!

最后说说关于数据库的问题:

因为虚拟机只有一个数据库,如果建多站点就只能把多站点的数据库混合在一个库中,这个操作对小白来说非常危险,因为数据库前缀千万不能相同不然会破坏掉其它站点的数据库,必须修改数据库前缀防止冲突,操作前一定要备份原有数据再操作!

评论已关闭!