咱們如今有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]認爲這兩個條件同時存在