我们所购买的阿帕奇(Linux服务器其中一种)虚拟主机,一台阿帕奇虚拟主机控制面板只能把域名绑定到同一网站根目录。那么就算绑定了多个域名,但是因为是绑定到同一个网站根目录下,打开的网站就是同一个。
那么我们想用虚拟主机搭建多个站,要怎么才能操作呢?
这个我们可以利用.htaccess文件绑定域名到虚拟主机网站根目录中的子目录,当然前提你的空间服务器必须支持apache的rewrite功能,只有这样才能使用.htaccess。如果你的空间是Linux服务器 一般默认都开启了的。即可以实现绑定域名到子目录、一个空间多个站点。
下面是以 a.yuan95.cn 绑定到子目录yuan为例的.htaccess代码.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# 绑定 a.yuan95.cn到子目录yuan
RewriteCond %{HTTP_HOST} ^a\.yuan95\.cn$ [NC]
RewriteCond %{REQUEST_URI} !^/yuan/
RewriteRule ^(.*)$ yuan/$1?Rewrite [L,QSA]
#可以绑定多个 只需重复上三行代码并更改一下域名、目录名 就好了
</IfModule>
写好之后,把.htaccess保存上传到虚拟主机网站根目录,完成上面的步骤,你的子域名应该可以访问了。但是这个时候会出现一个问题,就是我们虚拟主机绑定域名+.htaccess文件绑定的目录,也是可以访问的。
那么我们在yuan目录中上传一个.htaccess 文件。
.htaccess其中的代码如下:
.htaccess其中的代码如下:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
#只许绑定的域名访问
RewriteCond %{HTTP_HOST} !^a\.yuan95\.cn$ [NC]
RewriteRule (.*) http://a.yuan95.cn/$1 [L,R=301]
#对绑定目录下与 同名的目录的处理
RewriteCond %{REQUEST_URI} ^\/yuan\/ [NC]
RewriteCond %{QUERY_STRING} !^(.*)?Rewrite
RewriteRule ^(.*)$ /%{REQUEST_URI}/%{REQUEST_URI}/$1?Rewrite [L,QSA]
</IfModule>
最后记得解析域名!