從搜尋引擎最佳化角度出發,301重新導向是網址重新導向最為可行的一種辦法。當網站的網域名稱發生變更後,搜尋引擎只對新網址進行索引,同時又會把舊地址下原有的外部連結如數轉移到新地址下,從而不會讓網站的排名因為網址變更而收到絲毫影響。同樣,在使用301永久性重新導向命令讓多個網域名稱指向網站主域時,亦不會對網站的排名產生任何負面影響。
一般來說,有以下兩種方法可以實現301重新導向。
修改.htaccess檔案
代碼如下:
<ifmodule mod_rewrite.c="">RewriteEngine OnRewriteCond %{HTTP_HOST} nowamagic.com$ [NC]RewriteRule ^(.*)$ http://nowamagic.net/$1 [R=301,L]RewriteCond %{HTTP_HOST} nowamagic.info$ [NC]RewriteRule ^(.*)$ http://nowamagic.net/$1 [R=301,L]</ifmodule>
關鍵代碼就是2句話:
RewriteCond %{HTTP_HOST} nowamagic.com$ [NC] RewriteRule ^(.*)$ http://nowamagic.net/$1 [R=301,L]
使用PHP的重新導向代碼上面的網域名稱是需要被重新導向的舊網域名稱,下面的是現在網站的網域名稱。
建立一個index.php檔案,然後參考下面代碼按自己的重新導向要求做簡單修改:
<?php$the_host = $_SERVER['HTTP_HOST'];$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';switch ($the_host){ case "www.nowamagic.tk": case "nowamagic.tk": $location = "Location: http://nowamagic.net" . $request_uri; break; case "blog.nowamagic.tk": $location = "Location: http://blog.nowamagic.net" . $request_uri; break; case "www.moiya.tk": case "moiya.tk": $location = "Location: http://nowamagic.net"; break; default: $location = "Location: http://nowamagic.net"; break;}header('HTTP/1.1 301 Moved Permanently');header($location);exit();?>
如果只要對一個網域名稱進行重新導向,可以把代碼簡化成下面的形式:
<?php$the_host = $_SERVER['HTTP_HOST'];//取得進入所輸入的網域名稱$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';//判斷後面的請求部分if($the_host !== 'nowamagic.net')//nowamagic.net是我現在的網域名稱{ header('HTTP/1.1 301 Moved Permanently');//發出301頭部 header('Location: http://nowamagic.net'.$request_uri);//跳轉到我的新網域名稱地址 exit();}?>
注意,最後的exit()函數是一定要寫的,我最初就沒有寫,結果只能重新導向首頁,像http://www.nowamagic.net/guestbook這樣的網頁,就無法進行重新導向。
最後,關於重新導向的一些細節:如果要對三個網域名稱進行重新導向,重新導向前,首先將這三個網域名稱作為Addon
Domain綁定到我的伺服器上去,並讓這三個網域名稱指向同一個檔案夾,這樣,只要修改這一個檔案夾中的.htaccess檔案或者index.php檔案就可以了。如果沒有.htaccess檔案或者index.php檔案,建立一個即可。注意,最後的exit()函數是一定要寫的,我最初就沒有寫,結果只能重新導向首頁,像http://www.nowamagic.net/guestbook這樣的網頁,就無法進行重新導向。
原文地址:http://www.nowamagic.net/librarys/veda/detail/1538