虚拟云主机创建多个站点方法(.htaccess实现)

阿里的普通版虚拟云主机最多只能建一个站点,但可以绑定多个域名。如果我们想创建2个或3个主机怎么办呢?难道需要再另外购买一台主机?

其实我们可以通过.htaccess文件来定义相关域名绑定对应的网站目录,这样来实现一台主机上挂多个站点。

 

另外,阿里虚拟主机也是可以自定义.htaccess文件的,我们只需要通过FTP连接,勾选 "强制显示隐藏文件" 即可在网站根目录中看到了。

 

使用FTP工具,右击编辑该文件:

默认内容模版(存档):

RewriteEngine on

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

  

域名跳转方法:

RewriteEngine on
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^blog.abc.com [NC] 
RewriteRule ^(.*)$ http://abc.com/blog/$1 [L,R=301]
</IfModule>

  

二级域名绑定/映射到子目录方法:

示例:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.111cn.net$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteBase /
RewriteRule . /index.php [L]
RewriteCond %{HTTP_HOST} ^down.111cn.net$ #服务器名
RewriteCond %{REQUEST_URI} !^/down/  #需要绑定的2级目录
RewriteCond %{REQUEST_FILENAME} !-f  #排除请求的参数不是文件
RewriteCond %{REQUEST_FILENAME} !-d  #排除请求的参数不是目录 
RewriteRule ^(.*)$ /down/$1  #转发规则
 #这个目的是用来直接跳转的
RewriteCond %{HTTP_HOST} ^down.111cn.net$
RewriteRule ^(/)?index.php$ down/index.php [L]

  

我使用的模版:

RewriteEngine on

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# 绑定a.abc.com 到 new子目录
RewriteCond %{HTTP_HOST} ^a.abc.com$ [NC]
RewriteCond %{REQUEST_URI} !^/new/
RewriteRule ^(.*)$ new/$1 [L,QSA]
</IfModule>

# END WordPress

  

 

posted @ 2018-04-26 18:59  Colin.liu  阅读(1942)  评论(0编辑  收藏  举报