阿里的普通版虚拟云主机最多只能建一个站点,但可以绑定多个域名。如果我们想创建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