域名跳转就不多说了,几乎大家都知道,就是一个老的域名跳转到一个新的域名,例如当大家访问我的www.okay686.com的时候其实会自动跳转到www.okay686.cn。
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/test3.com"
ServerName www.test3.com
ServerAlias www.haha.com
#<Directory /data/wwwroot/test3.com>
# <FilesMatch 123.php>
# AllowOverride AuthConfig
# AuthName "test3.com user auth"
# AuthType Basic
# AuthUserFile /data/.htpasswd
# require valid-user
# </FilesMatch>
#</Directory>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.test3.com$
RewriteRule ^/(.*)$ http://www.test3.com/$1 [R=301,L]
</IfModule>
ErrorLog "logs/haha.com-error_log"
CustomLog "logs/haha.com-access_log" common
</VirtualHost>
如上注释的部分就是咱们上节课做的单页面二次认证,我们将其注释掉,然后如下是我们的重点:
<IfModule mod_rewrite.c> //需要mod_rewrite模块支持
RewriteEngine on //打开rewrite功能
RewriteCond %{HTTP_HOST} !^www.test3.com$ //定义rewrite的条件,主机名(域名)不是www.test3.com满足条件
RewriteRule ^/(.*)$ http://www.test3.com/$1 [R=301,L] //定义rewrite规则,当满足上面的条件时,这条规则才会执行
</IfModule>
也就是说 当我们输入www.haha.com时就会默认跳转到www.test3.com!
[root@localhost ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@localhost ~]# /usr/local/apache2.4/bin/apachectl graceful
[[email protected] ~]# /usr/local/apache2.4/bin/apachectl -M| grep rewrite
[[email protected] ~]# vim /usr/local/apache2.4/conf/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so
查看系统有没有加载rewrite模块;如果没有就启动
搜索一下 /rewrite模块!去掉前面的#即可。
然后再次确认下:
[[email protected] ~]# /usr/local/apache2.4/bin/apachectl -M| grep rewrite
rewrite_module (shared)
然后我们测试下:
[[email protected] ~]# curl -x127.0.0.1:80 www.haha.com -I
HTTP/1.1 301 Moved Permanently
Date: Mon, 31 Jul 2017 15:16:13 GMT
Server: Apache/2.4.27 (Unix) PHP/7.1.6
Location: http://www.test3.com/
Content-Type: text/html; charset=iso-8859-1
-I:不显示站内内容,只显示状态码即可,已经成功显示成301
再次测试页面是否也是跳转的:
[[email protected] ~]# curl -x127.0.0.1:80 www.haha.com/asd.php -I
HTTP/1.1 301 Moved Permanently
Date: Mon, 31 Jul 2017 15:18:17 GMT
Server: Apache/2.4.27 (Unix) PHP/7.1.6
Location: http://www.test3.com/asd.php
Content-Type: text/html; charset=iso-8859-1
页面也是跟着一起跳转!
域名+页面重定向完结!