301域名跳转

但是我们之前只设置了两个域名,www.test.comwww.aaa.com

两个域名都可以访问这个站点,但是需要分出个主次,无论哪个域名访问,都跳转到主域名上。

怎么去配置权重,分出主次呢?

 

去编辑虚拟主机配置文件:

[root@No test]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf 

红色部分为添加。

<VirtualHost *:80>

#    ServerAdmin [email protected]

    DocumentRoot "/data/www"

    ServerName www.test.com

    ServerAlias www.aaa.com

#   ErrorLog "logs/dummy-host.example.com-error_log"

#    CustomLog "logs/dummy-host.example.com-access_log" common

  <IfModule mod_rewrite.c>

     RewriteEngine on

     RewriteCond %{HTTP_HOST} ^www.aaa.com$

     RewriteRule ^/(.*)$ http://www.test.com/$1 [R=301,L] 

  </IfModule>

  <Directory /data/www/test>

     AllowOverride AuthConfig

     AuthName "zhanghaomima"

     AuthType Basic

     AuthUserFile /data/.htpasswd

     require valid-user

  </Directory>

 

//不管哪个域名都直接跳转到www.test.com 

[R=301,L] 301状态码,是永久重定向,对于搜索引擎来说是友好的,302是临时重定向,

L是结束,last,到这里就结束了。

 

如果是多个域名的话需要按照以下配置:加上[OR]

<IfModule mod_rewrite.c>

     RewriteEngine on

     RewriteCond %{HTTP_HOST} ^www.aaa.com$  [OR]

     RewriteCond %{HTTP_HOST} ^www.bbb.com$

     RewriteRule ^/(.*)$ http://www.test.com/$1 [R=301,L] 

  </IfModule>

 

 

 

[root@No test]# apachectl -t

Syntax OK

[root@No test]# apachectl graceful

 

 

理论上,再去浏览器中访问www.aaa.com会自动跳转到www.test.com

而我去访问www.aaa.com时候并没有跳转。

 

[root@No test]# apachectl -M

发现并没有rewrite_module的这个模块,导致不能跳转。

解决方法:

[root@No test]# vim /usr/local/apache2/conf/httpd.conf

找到这一行:#LoadModule rewrite_module modules/mod_rewrite.so

修改为:LoadModule rewrite_module modules/mod_rewrite.so

wq

 

[root@No test]# apachectl -M

再次去查看模块,发现已经有了rewrite_module (shared)这个模块。

 

再去浏览网页,已经可以域名跳转了,访问www.aaa.com会自动跳转成www.test.com.

 

 

 

 

 

 

 


你可能感兴趣的:(配置文件,虚拟主机,301)