CC00052.LinuxNetwork——|Linux&Apache.V03|——|域名跳转|

一、虚拟主机(重点)
### --- 虚拟机:
~~~     虚拟硬件,真正的操作系统;
~~~     在一台物理机上来进行多个虚拟主机的部署,达到资源的最大利用率。

### --- 虚拟主机:
~~~     虚拟空间;
~~~     虚拟主机,也叫“虚拟空间“,
~~~     就是把一台运行在互联网上的物理服务器划分成多个”虚拟“服务器,
~~~     虚拟机主机技术极大的促进了网站技术的应用和普及,
~~~     同时虚拟主机的租用服务也成了网络时代的一种新型经济技术。
### --- 虚拟主机的分类

~~~     #基于IP的虚拟主机:
~~~     一台服务器,多个IP,搭建多个网站
~~~     #基于端口的虚拟主机:
~~~     一台服务器,一个IP,搭建多个网站,每个网站使用不同的端口访问
~~~     #基于域名的虚拟主机:
~~~     一台服务器,一个IP,搭建多个网站,每个网站使用不同的域名访问
二、Apache实验
### --- 域名解析:准备两个域名
www.yanqiv1.com
www.yanqiv2.com

~~~		使用本地hosts文件进行解析
[root@server11 ~]# vim /etc/hosts
10.10.10.11 www.yanqiv1.com
10.10.10.11 www.yanqiv2.com
### --- 网站主页目录规划
~~~		在/htdocs/目录下分别创建yanqivp1和yanqiv2两个目录,
~~~		并且新建目录内创建index.html文件(分别写不一样的内容)

[root@server11 ~]# mkdir  /usr/local/apache2/htdocs/yanqiv1
[root@server11 ~]# mkdir  /usr/local/apache2/htdocs/yanqiv2
[root@server11 ~]# vim  /usr/local/apache2/htdocs/yanqiv1/index.html
www.yanqiv1.com
[root@server11 ~]# vim  /usr/local/apache2/htdocs/yanqiv1/index.htm2 
www.yanqiv2.com
### --- 修改主配置文件开启文件关联

[root@server11 ~]# vim /usr/local/apache2/etc/httpd.conf
Include etc//extra/httpd-vhosts.conf                        // 此行取消注释
### --- 编辑子配置文件,编写虚拟主机标签

[root@server11 ~]# vim /usr/local/apache2/etc/extra/httpd-vhosts.conf // 添加以下内容,有几个虚拟主机就写机组(添加之前先把原先存在的示例删除掉)
:23,38s /^/#/                                               // 23到38行加上注释
#<Directory "/usr/local/apache2/htdocs/yanqiv1">            // 目录权限标签根据需要自行添加,添加用户认证权限
#    Options Indexes FollowSymLinks
#    AllowOverride None                                     // none是关闭状态,可以设置用户认证及域名跳转
#    Require all granted
#</Directory>
<VirtualHost 10.10.10.11:80>                                // 要监听的网卡地址和端口,若是有很多块网卡的话可以写*
    ServerAdmin webmaster@yanqiv1.com                       // 管理员邮箱
    DocumentRoot "/usr/local/apache2/htdocs/yanqiv1"        // 这个网站所绑定的网页文件地址
    ServerName www.yanqiv1.com                              // 完整域名
    ErrorLog "logs/yanqiv1-error_log"                       // 错误日志
    CustomLog "logs/yanqiv1-access_log" common              // 访问日志
</VirtualHost>
<VirtualHost *:80>
    ServerAdmin webmaster@yanqiv2.com
    DocumentRoot "/usr/local/apache2/htdocs/yanqiv2"
    ServerName www.yanqiv2.com
    ErrorLog "logs/yanqiv2-error_log"
    CustomLog "logs/yanqiv2-access_log" common
</VirtualHost>
### --- 重启服务,验证结果

[root@server11 ~]# apachectl -t
Syntax OK
[root@server11 ~]# apachectl restart
~~~		Windows下:浏览器输入两个不同的域名验证网页内容(提前修改windows的hosts文件)
C:\Windows\System32\drivers\etc
10.10.10.11 www.yanqiv1.com
10.10.10.11 www.yanqiv2.com

~~~		通过Chrome访问www.yanqiv1.com和www.yanqiv2.com
http://www.yanqiv1.com/
www.yanqiv1.com 
http://www.yanqiv2.com/
www.yanqiv2.com
~~~		Linux下:通过elinks/curl命令验证:
~~~		elinks/curl URL地址(提前修该linux的hosts文件)

[root@localhost ~]# elinks www.yanqiv1.com
www.yanqiv1.com 
[root@localhost ~]# elinks www.yanqiv2.com
www.yanqiv2.com 
[root@localhost ~]# curl www.yanqiv1.com
www.yanqiv1.com
[root@localhost ~]# curl www.yanqiv2.com
www.yanqiv2.com
三、域名跳转
### --- 域名跳转

~~~		一个网站难免会有多个域名,而多个域名总得有一个主次,
~~~		比如我的网站可以用两个域名访问:www.yanqiv1.com和www.yanqiv2.com
~~~		但大家发现不管我用那个域名访问,最终都会跳转到www.yanqi.com上来,
~~~		这个行为就叫做域名的跳转,状态码:301是永久跳转,
~~~		302是临时跳转(之前的域名出现问题,可以使用该方案)网站上一定要是和值为301,
~~~		这样对搜索引擎是比较友好的。
~~~		实验条件
### --- 虚拟主机能正常访问
~~~		打开主配置文件开启重写模块

[root@localhost ~]# vim /usr/local/apache2/etc/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so            // 取消注释
### --- 实验步骤:
~~~		修改虚拟主机配置文件

[root@localhost ~]# vim /usr/local/apache2/etc/extra/httpd-vhosts.conf
<Directory "/usr/local/apache2/htdocs/yanqiv2">             // 把目录改为yanqiv2,对yanqiv2做一个域名跳转
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
### --- 创建匹配文件

[root@localhost yanqiv2]# vim /usr/local/apache2/htdocs/yanqiv2/.htaccess                   #在指定的网站目录下创建文件,并添加如下内容
:1,9s /  //                                                 // 取消1到9前面的两个空格
RewriteEngine on                                
#开启rewrite功能
RewriteCond %{HTTP_HOST} ^www.yanqiv2.com                   // 若开头访问到是www.yanqiv2.com的地址,     
#把以www.yanqi.com      开头的内容赋值给HTTP_HOST变量
RewriteRule ^(.*)$ http://www.yanqiv1.com/$1 [R=permanent,L] // 都匹配到www.yaqniv1.com R=permanent:指的是把跳转规则变为301永久规则,L:表示最后一条规则,最后一条规则生效,再写也会执行。
# ^(.*)$指带客户端要访问的资源
# $1 把 .* 所指代的内容赋值到$1变量中
# R=permanent 永久重定向 = 301
# L 指定该规则为最后一条生效的规则,以后的不在生效
### --- 重启服务器并测试

[root@localhost ~]# apachectl -t
Syntax OK
[root@localhost ~]# apachectl restart
~~~		通过上述测试,
~~~		发现无论是yanqiv1或yanqiv2最终都是访问到www.yanqi.com域名上来则试验成功

[root@localhost ~]# curl www.yanqiv1.com                    // yanqiv1:正常访问到页面
www.yanqiv1.com
[root@localhost ~]# curl www.yanqiv2.com                    // yanqiv2:会直接跳转到yanqiv1域名;会直接访问到配置信息,curl会加载网页内容
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://www.yanqiv1.com/">here</a>.</p> // 跳转成了www.yanqiv1.com地址
</body></html>
[root@localhost ~]# elinks www.yanqiv1.com  
www.yanqiv1.com                                             // 访问到yanqiv1的页面
[root@localhost ~]# elinks www.yanqiv1.com    
www.yanqiv1.com                                             // 跳转到yanqiv1的页面
### --- curl是把页面打印出来了
### --- elinks是解析了跳转页面
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yanqi_vip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值