八、Apache域名跳转
当我们变更网站域名,或者申请多个域名指向一个网站的时候,这个时候我们就会用到域名跳转(或者叫域名重定向redirect、域名转向)。
域名跳转试验配置,访问域名不是a.com www.aa.com 的全部跳转至baidu。
[root@global ~]# vim /etc/httpd/conf.d/virtual.conf
<VirtualHost *:8090>
DocumentRoot "/data/www"
ServerName www.a.com
ServerAlias www.aa.com
ServerAlias www.aaa.com<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^a.com$
RewriteCond %{HTTP_HOST} !^www.aa.com$
RewriteRule ^/(.*)$ http://www.baidu.com/$1 [R=301,L]
</IfModule>
ErrorLog "logs/a.com-error_log"
CustomLog "logs/a.com-access_log" common
</VirtualHost>[root@global conf.d]# /usr/sbin/apachectl -t
[root@global conf.d]# /usr/sbin/apachectl graceful
以上是配置,配置说明如下:
<IfModule mod_rewrite.c> //需要mod_rewrite模块支持
RewriteEngine on //打开rewrite功能
RewriteCond %{HTTP_HOST} !^www.a.com$ //定义rewrite的条件,主机名(域名)不是www.a.com即可满足条件
RewriteRule ^/(.*)$ http://www.baidu.com/$1 [R=301,L] //定义rewrite规则,当满足上面的条件时,这条规则才会执行,其中301是永久
跳转,302是只跳转一次。L的意思是跳转一次后就结束
</IfModule>
[root@global conf.d]# /usr/sbin/apachectl -M |grep rewrite (查看是否加载了模块)
rewrite_module (shared)
[root@global ~]# curl -x172.24.10.59:8090 a.com -I
(测试域名跳转)