【部署】利用一个主机,两个域名,实现多站点部署(非访问到同一个页面)

【部署】利用一个主机,两个域名,实现多站点部署(非访问到同一个页面)


材料准备: 域名两个或两个以上,虚拟云主机一台(本教程使用的是阿里云虚拟云主机,Linux版本操作系统)
准备完成后,我们开工


  1. 域名注册商云解析页面,为域名设置解析,解析到虚拟云主机的ip地址
    添加记录

a.comb.com解析到同一台虚拟主机

记录类型 主机记录 解析路线 记录值 MX优先级 TTL
A www 默认 虚拟云主机的ip地址 - 10分钟
A @ 默认 虚拟云主机的ip地址 - 10分钟

PS:设置解析一般需要一段时间可以生效,不同供应商可能存在差异。


  1. 虚拟主机管理面板设置域名绑定
    在这里插入图片描述
    将刚刚第一步设置解析的域名都填写上来,实现主机域名双向绑定

这个时候,如果刚刚设置的域名解析生效的时候,访问两个域名,会发现打开的是同一个页面(当然如果你未备案的话,可能也是同一个未备案的页面[白眼])。

我们连接到ftp上应该是一个这样的目录结构,htdocs是网站的目录。
在这里插入图片描述
为了测试一下可以先随便写一个index.html页面,然后ftp连接到虚拟主机,把index.html扔进htdocs。然后在分别打开a.comb.com查看。


  1. 删除了index.html, 在htdocs目录下,用域名作为文件名,分别创建两个目录
    在这里插入图片描述
    可以在两个目录下,分别新建一个index.html

a.com/index.html

<!DOCTYPE HTML>
<html>
  <head>
    <meta charset="utf-8">
    <title>我是a.com</title>
  </head>
  <body>
    <h1>你好!我是a.com</h1>
  </body>
</html>

b.com/index.html

<!DOCTYPE HTML>
<html>
  <head>
    <meta charset="utf-8">
    <title>我是b.com</title>
  </head>
  <body>
    <h1>你好!我是b.com</h1>
  </body>
</html>

现在本地使用sublime或其他编辑器创建一个文件名为.htaccess的文件

# a.com --------------------------------start---
<IfModule mod_rewrite.c>
# 关闭目录列表
Options -Indexes
RewriteEngine on
# 预设页面
DirectoryIndex index.html index.htm index.php
RewriteCond %{HTTP_HOST} ^a.com[NC]
RewriteCond %{HTTP_HOST} ^www.a.com[NC]
RewriteRule ^(.*)$ http://a.com/$1 [L,R=301]
# 将域名绑定在特定的目录当中。a.com就是刚刚建立的文件目录
RewriteCond %{HTTP_HOST} ^(www.)?a.com$ [NC]
RewriteRule ^(.*)$ /a.com/$1 [L]
</IfModule>
# a.com ----------------------------------end---

# b.com --------------------------------start---
<IfModule mod_rewrite.c>
# 关闭目录列表
Options -Indexes
RewriteEngine on
# 预设页面
DirectoryIndex index.html index.htm index.php
RewriteCond %{HTTP_HOST} ^b.com[NC]
RewriteCond %{HTTP_HOST} ^www.b.com[NC]
RewriteRule ^(.*)$ http://b.com/$1 [L,R=301]
# 将域名绑定在特定的目录当中。b.com就是刚刚建立的文件目录
RewriteCond %{HTTP_HOST} ^(www.)?b.com$ [NC]
RewriteRule ^(.*)$ /b.com/$1 [L]
</IfModule>
# b.com ----------------------------------end---

具体规则代码如上,大致就是判断你是从哪一个域名访问到虚拟主机
如果是a.com,那么就重定向到a.com这个目录的index.html
如果是b.com,那么就重定向到b.com这个目录的index.html


  1. 最后需要再写两个.htaccess文件
    分别如下

.htaccess

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /a.com/
</IfModule>

这个放到a.com目录下


.htaccess

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /b.com/
</IfModule>

这个放到b.com目录下


这个是PHP环境下的方法,如果是IIS环境下的话,可以参考一下这篇虽然我没有试过

参考:

什么是.htaccess
.htaccess重写让空间绑定多个域名到不同的目录支持多站点

发布了17 篇原创文章 · 获赞 9 · 访问量 7479
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览