2022-10-25 更新 5575 阅读

如果你的主机有1G的空间,可以绑定20个域名,只用来放一个网站会不会太浪费啦,那是肯定很浪费的。接下来我们来看看怎么通过htaccess,让不同域名绑定不同子目录,从而实现同一个主机建立多个独立网站。

htaccess 域名目录分配

.htacces 真的很强大,我们使用.htaccess写入特定规则,就可以一个空间放多个网站,让不同域名进入绑定不同的文件夹,以下范例:

比如我们要根目录中实现以下的域名绑定子目录结构:

|----.htaccess文件

|----me目录(绑定域名me.mrju.cn)

  |--------.htaccess文件

|----aaa目录(绑定域名aaa.com)

  |--------.htaccess文件

那么需要在网站根目录的.htaccess文件中添加以下内容:

RewriteEngine on
# 把 me.mrju.cn 改为你要绑定的域名.
RewriteCond %{HTTP_HOST} ^(www.)?me.mrju.cn$
# 把 me改为要绑定的目录.
RewriteCond %{REQUEST_URI} !^/me/
# 不要改以下两行.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 把 me改为要绑定的目录.
RewriteRule ^(.*)$ /me/$1
# 把 me.mrju.cn 改为你要绑定的域名
# 把 me 改为要绑定的目录.
# me/ 后面是首页文件index.php, index.html……
RewriteCond %{HTTP_HOST} ^(www.)?me.mrju.cn$
RewriteRule ^(/)?$ me/index.index [L]

这样我们就已经把me.mrju.cn这个域名绑定到了me这个子目录上面,相当于me就是一个独立域名主机服务器。example.mrju.cn同理。

但是如果只到这里,你会发现,当你通过www.mrju.cn/me/的方式也可以访问me.mrju.cn里面的内容,这当然是我们不想看到的。也不利于seo。怎么样来防止其他域名访问me.mrju.cn中的内容呢?接下来看下面。

htaccess 禁止域名互相访问

me目录中添加.htaccess文件(谨记!),文件中添加以下内容:

RewriteEngine On
# 禁止通过非本网站域名访问
# 把 括号里面的me 改为你要绑定的二级域名的前缀.
# 把 mrju.cn 改为你要绑定的域名的前缀.
RewriteCond %{HTTP_HOST} !^(me.)?mrju.cn$ [NC]
RewriteRule ^.*$ [L,r=404]

通过以上两个步骤,我们已经成功的实现了域名me.mrju.cn绑定到me子目录中,example.mrju.cn同理,并且域名与域名间相互独立访问。

如果绑定多个域名到子目录,那么规则以此类推以上内容后重复即可!

亲自测试,正常可用!需要子目录绑定的空间推荐此办法!