域名跳转

域名跳转

首先打开虚拟主机配置文件,输入命令 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回车,见下图,
域名跳转
更改上图红色框框的内容,保存并退出。
这边用到一个模块 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,见下图,
域名跳转
把红色框框的这一行,取消前面的#注释,保存并退出。接着往下操做,见下图,
域名跳转
这个时候就能够测试了。先来看一下虚拟主机配置文件的结构,输入命令 cat /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回车,见下图,
域名跳转
能够看到,第二个虚拟主机里面有三个域名,来尝试访问 2111.com.cn,输入命令 curl -x127.0.0.1:80 2111.com.cn -I,回车,见下图,
域名跳转
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,回车,见下图,
域名跳转
状态码还有不少,之后碰到了再说,这边很少作解释。
以上就是域名跳转,也叫作域名重定向。php

相关文章
相关标签/搜索