Apache配置301跳轉

咱們如今有test和aaa在訪問這個discuz論壇,那麼這兩個域名坑定會分一個主次,尤爲是如今搜索引擎他會有一個排名權重,那麼官方語言叫作「PR",那麼PR高低會有影響的,那搜索引擎分辨不出主次,因此咱們如今幫搜索引擎分清主次,這個時候咱們就有一種方法叫作跳轉:域名的跳轉,訪問aaa.com跳轉到test.com,那我配置一下編輯虛擬主機配置文件php

[root@zhangmengjunlinux ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf html

配置跳轉,跳轉用到一個模塊叫作Rewrite模塊linux

 

<IfModule mod_rewrite.c>apache

      RewriteEngine onvim

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

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

   </IfModule>測試

咱們來看一下Rewrite模塊,有沒有加載搜索引擎

[root@zhangmengjunlinux ~]# apachectl -Murl

Loaded Modules:

 core_module (static)

 authn_file_module (static)

 authn_default_module (static)

 authz_host_module (static)

 authz_groupfile_module (static)

 authz_user_module (static)

 authz_default_module (static)

 auth_basic_module (static)

 include_module (static)

 filter_module (static)

 log_config_module (static)

 env_module (static)

 setenvif_module (static)

 version_module (static)

 mpm_prefork_module (static)

 http_module (static)

 mime_module (static)

 status_module (static)

 autoindex_module (static)

 asis_module (static)

 cgi_module (static)

 negotiation_module (static)

 dir_module (static)

 actions_module (static)

 userdir_module (static)

 alias_module (static)

 so_module (static)

 deflate_module (shared)

 expires_module (shared)

 rewrite_module (shared)  共享模塊

 php5_module (shared)

Syntax OK

咱們須要改一下配置:


 RewriteCond %{HTTP_HOST} ^www.aaa.com$ 跳轉條件

 RewriteRule ^(.*)$  http://www.test.com/$1 [R=301,L] 規則 L:表示LAST結束

^:以。。。。。開頭

/(.*)是www.test.com/後面的 www.test.com表明HTTP_HOST 

用$1去標記 最終會跳轉到這個www.test.com 的$1

R=301 這個301是狀態碼

跳轉分兩種:一種是301 永久重定向,對搜索引擎友好

            一種是302 臨時重定向 

咱們網頁域名跳轉必定要用301,對搜索引擎很是友好的

能夠用curl測試

[root@zhangmengjunlinux ~]# curl -x 192.168.140.100:80  www.aaa.com -I

HTTP/1.1 301 Moved Permanently

Date: Mon, 28 Dec 2015 15:56:11 GMT

Server: Apache/2.2.31 (Unix) PHP/5.3.27

Location: http://www.test.com//

Content-Type: text/html; charset=iso-8859-1

測試的時候能夠指定一個IP ,-I能夠看到狀態碼

有時候咱們也會遇到不止兩個域名的狀況,aaa或者是bbb

<VirtualHost *:80>

    DocumentRoot "/data/www/"

    ServerName  www.test.com

    ServerAlias www.aaa.com

    ServerAlias www.bbb.com

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

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

   <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>

[OR]表示或者的意思,不加[OR]認爲這兩個條件同時存在

相關文章
相關標籤/搜索