虚拟主机绑定多域名多站点方案
前言
因为最近需要用到域名备案,感觉买个 VPS 或 ECS 不划算,虚拟主机比较便宜,有些厂商提供虚拟主机还可以免费使用,但是免费的商品终究有些或多或少的限制,比如:不支持多站点多域名绑定等。为了在一个虚拟主机上实现多站点多域名的需求,经过多方查找资料,就有了这篇文章。
需求:
- 一个虚拟主机上实现多站点,多域名绑定;
- 一个域名对应一个站点,禁止其他域名访问站点;
- 当访问一个域名时,浏览器中url不会变化;
在查找资料之前,想到有 3 中实现方法;
- 通过nginx 或 apache 站点配置文件
- 在首页通过 js 或 其他代码 进行域名跳转
- 在 .htaccess 在进行重新规则
方案一
在站点根目录使用 .htaccess 文件实现,需要开启伪静态设置,有些虚拟主机是默认关闭的,需要手动开启,若未开启,可能会出现 500 内部配置错误等问题。在虚拟主机根节点 .htaccess
文件中添加如下配置:
1 | <IfModule mod_rewrite.c> |
为了防止其他域名进行访问 domain1 目录,可以在其子站根目录下 .htaccess 文件中,添加如下配置:
1 | <IfModule mod_rewrite.c> |
切记:不要添加 [R] 标识,R=301 会让浏览器进行再次跳转请求,所以将其去掉。
参考资料
- 利用伪静态实现虚拟主机多站点
- 万网免费虚拟云主机WordPress多站点搭建指南
- .htaccess redirect without changing address bar
- .htaccess: Redirect without changing url
- htaccess实现一台虚拟主机多个独立域名网站
方案二
请参考 阿里云 给出的方案;
参考资料
文档信息
- 版权声明:自由转载-保持署名-非商用-非衍生 ( CC BY-NC-ND 4.0 )