一台虚拟主机服务商的要求都是只能存放一个站点,而我们这些小站长,博主之类;买一台一般500m-1g的虚拟主机完全够用了!但是准备一个新的站点,又要去买新的虚拟主机,浪费钱,不干!我们就像是否可以在一个虚拟主机上就像多站点建站!
当然是完全ok的,最简单的是创建不同的目录,在根目录下创建wp和em存放WordPress博客和emlog博客,然后通过域名/子目录名访问,当然这不是我们今天来分享的方法,当然这样未免太low!
今天介绍的方法我们通过访问不同的域名来访问不同的站点!我们就用到了.htaccess规则
首先我们新建一个.htaccess文件(当然可以在win电脑上随便起名字用TXT存放在电脑上,上传虚拟主机之后修改名字为.htaccess也是可行的)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# 绑定pic.cncat.cn 到子目录pic
RewriteCond %{HTTP_HOST} ^pic\.cncat\.cn$ [NC]
RewriteCond %{REQUEST_URI} !^/pic/
RewriteRule ^(.*)$ pic/$1?Rewrite [L,QSA]
#可以绑定多个, 只需重复上三行代码并更改一下域名、目录名 就OK了
# 绑定video.cncat.cn 到子目录video
RewriteCond %{HTTP_HOST} ^video\.cncat\.cn$ [NC]
RewriteCond %{REQUEST_URI} !^/video/
RewriteRule ^(.*)$ video/$1?Rewrite [L,QSA]
#可以绑定多个, 只需重复上三行代码并更改一下域名、目录名 就OK了
</IfModule>
创建上述的文件存放在虚拟主机的根目录(万网跟目录htdocs,景安的web其他服务商自行分辨)
这么简单就搞定?你想啥呢,肯定没有这么容易不过也差不多了!
接下来你的每个子目录下继续放不同的.htaccess文件就可以
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
#只许绑定的域名访问
RewriteCond %{HTTP_HOST} !^pic\.cncat\.cn$ [NC]
RewriteRule (.*) http://pic.cncat.cn/$1 [L,R=301]
#对绑定目录下与 同名的目录的处理
RewriteCond %{REQUEST_URI} ^\/pic\/ [NC]
RewriteCond %{QUERY_STRING} !^(.*)?Rewrite
RewriteRule ^(.*)$ /%{REQUEST_URI}/%{REQUEST_URI}/$1?Rewrite [L,QSA]
</IfModule>
根据目录名称进行修改目录和域名就行,video文件夹下,把上述的修改为video就ok!
简单说一下上面的东东吧,
RewriteCond %{HTTP_HOST} ^pic\.cncat\.cn$ [NC] //这个是绑定的域名pic是二级域名,顶级域名cncat.cn
RewriteCond %{REQUEST_URI} !^/pic/ //pic是你的文件夹名称,
RewriteRule ^(.*)$ pic/$1?Rewrite [L,QSA] //允许pic的二级域名访问该文件夹
根目录放一份,子目录放一份对应的子目录处理的就行!注意修改自己的域名和目录名称就ok!
自此,去尝试不同的域名访问不同的子目录实现不同站点吧,节约资源(钱,这东西能省就省吧!),从我做起!
上述万网虚拟主机测试可行!
但是我用的景安免空,测试景安好想不行!
景安不行,那怎能行!我尝试提交工单说让我购买子站点去绑定子目录来实现,好想10块钱/站点/月(好贵),
那就是景安虚拟主机不能这样搞!凉凉了,NO!还是可以搞到,按照上述的.htaccess规则在根目录和子目录对应存放确实不行,我尝试把虚拟主机的伪静态打开,测试ok!收费不存在的!完美解决一个虚拟主机多占点访问问题!