且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

LAMP之配置域名跳转

更新时间:2022-10-02 21:39:25

  继上篇《LAMP之禁止默认虚拟主机》,需要再配置域名跳转,httpd-vhosts.conf配置如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<VirtualHost *:80>
    DocumentRoot "/data/www"
    ServerName www.vixia.com
    ServerAlias www.123.com
  <Directory /data/www/abc/>
    AllowOverride AuthConfig
    AuthName "?"
    AuthType Basic
    AuthUserFile /data/.htpasswd
    require valid-user
  </Directory>
  <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTP_HOST} ^www.123.com$
        RewriteRule ^/(.*)$ http://www.vixia.com/$1 [R=301,L]
  </IfModule>
</VirtualHost>

 www.vixia.com和www.123.com都可以访问到web服务器,但是www.vixia.com是主域名,www.123.com是次域名,我们需要进行域名权重,提升www.vixia.com的PR值(网页级别),将www.123.com跳转到www.vixia.com上。

1
2
3
4
5
<IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTP_HOST} ^www.123.com$
        RewriteRule ^/(.*)$ http://www.vixia.com/$1 [R=301,L]
  </IfModule>

添加上面内容,利用rewrite可以将www.123.com跳转到www.vixia.com上。

如果是多个域名,

    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTP_HOST} ^www.domain.com [OR]
        RewriteCond %{HTTP_HOST} ^www.domain1.com$
        RewriteRule ^/(.*)$ http://www.domain2.com/$1 [R=301,L]
    </IfModule>
或者:    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTP_HOST} !^www.domain2.com$
        RewriteRule ^/(.*)$ http://www.domain2.com/$1 [R=301,L]
    </IfModule>

1
2
3
4
5
6
[root@test4 ~]# curl www.123.com -I
HTTP/1.1 301 Moved Permanently
Date: Thu, 31 Dec 2015 11:03:19 GMT
Server: Apache/2.2.31 (Unix) PHP/5.6.6
Location: http://www.vixia.com/
Content-Type: text/html; charset=iso-8859-1

可以看出www.123.com已经301永久域名重定向了。


      本文转自YU文武貝 51CTO博客,原文链接:http://blog.51cto.com/linuxerxy/1731354,如需转载请自行联系原作者