域名跳转_第1张图片

首先打开虚拟主机配置文件,输入命令 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回车,见下图,
域名跳转_第2张图片
更改上图红色框框的内容,保存并退出。
这边用到一个模块 mod_rewrite,编译 apache 时用到的 most,它会把大多数的模块都编译进来,如果没有加任何参数,mod_rewrite 模块也不会出现。RewriteEngine 是否打开,on 就是打开的意思,打开了后面的配置才会生效。RewriteCond 定义条件,定义什么时候才会跳转,当域名不是 111.com 的时候就会跳转,现在就是以 111.com 为主域名。!表示取反,^ 表示开头,$ 表示结尾。定义开头和结尾,就是为了避免把所有包含 111.com 的域名都匹配进去。举个例子,如果不定义开头和结尾,像 2111.com.cn 这种域名的就会匹配进去,所以定义开头和结尾是必要的。RewriteRule 定义规则,^ 表示除去域名之外的部分,/ 表示域名里面的 /,(.) 表示域名中 / 的后面部分。后面的网址就是要跳转的网址,$1表示前面的第一个小括号就是 (.) ,[R=301,L] 中的R=301表示定义一个状态码301,L 表示只跳一次就结尾。
更改完配置文件,需要重新加载一下,见下图,
域名跳转
在测试之前,还要先检查一下 apache 是不是加载了 rewrite 模块,使用命令 /usr/local/apache2.4/bin/apachectl -M |grep rewrite。没有加载的话,就要进入配置文件里面打开。 vim /usr/local/apache2.4/conf/httpd.conf,回车,搜索 /rewrite,见下图,
域名跳转_第3张图片
把红色框框的这一行,取消前面的#注释,保存并退出。接着往下操作,见下图,
域名跳转_第4张图片
这个时候就可以测试了。先来看一下虚拟主机配置文件的结构,输入命令 cat /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回车,见下图,
域名跳转_第5张图片
可以看到,第二个虚拟主机里面有三个域名,来尝试访问 2111.com.cn,输入命令 curl -x127.0.0.1:80 2111.com.cn -I,回车,见下图,
域名跳转_第6张图片
301是永久跳转,404表示页面不存在。命令 curl -x127.0.0.1:80 2111.com.cn/12345.php -I 中的 2111.com.cn/12345.php 是随便写入的,没有这个位置。但是也实现跳转到了 http://111.com/12345.php 这个位置。后面使用命令 curl -x127.0.0.1:80 http://111.com/12345.php -I 访问的时候,就显示页面不存在。还有,301是临时跳转,401是用户密码验证不对,用户密码验证对了就是200。输入命令 curl -x127.0.0.1:80 http://111.com/123.php -I,回车,见下图,
域名跳转_第7张图片
状态码还有很多,以后碰到了再说,这边不多做解释。
以上就是域名跳转,也叫做域名重定向。