apache+php完美解決301重新導向的兩種方法

來源:互聯網
上載者:User

幸好有301重新導向能有效解決這樣的問題。正如月光部落格這篇文章中說的,
301重新導向可促進搜尋引擎最佳化效果
從搜尋引擎最佳化角度出發,301重新導向是網址重新導向最為可行的一種辦法。當網站的網域名稱發生變更後,搜尋引擎只對新網址進行索引,同時又會把舊地址下原有的外部連結如數轉移到新地址下,從而不會讓網站的排名因為網址變更而收到絲毫影響。同樣,在使用301永久性重新導向命令讓多個網域名稱指向網站主域時,亦不會對網站的排名產生任何負面影響。

關於301重新導向的更多內容,大家不妨Google一下。本文只介紹實現方法啦!
301重新導向的實現,我以前也寫過一篇相關的文章,但這篇文章的解決方案比較簡單,只能實現首頁的跳轉,本文介紹的這兩種方法,可以完美實現301重新導向。

方法1:修改.htaccess檔案
代碼如下: 複製代碼 代碼如下:<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} blog.iflyhigher.tk$ [NC]
RewriteRule ^(.*)$ http://blog.jb51.net/$1 [R=301,L]
RewriteCond %{HTTP_HOST} iflyhigher.tk$ [NC]
RewriteRule ^(.*)$ http://jb51.net/$1 [R=301,L]
RewriteCond %{HTTP_HOST} moiya.tk$ [NC]
RewriteRule ^(.*)$ http://jb51.net/$1 [R=301,L]
</ifmodule>

本博需要對三個網域名稱進行重新導向,所以寫的比較多,關鍵代碼就是2句話 複製代碼 代碼如下:RewriteCond %{HTTP_HOST} blog.iflyhigher.tk$ [NC]
RewriteRule ^(.*)$ http://blog.jb51.net/$1 [R=301,L]

紅色的網域名稱是需要被重新導向的舊網域名稱,綠色的是現在網站的網域名稱。
方法2:使用PHP的重新導向代碼
建立一個index.php檔案,然後參考下面代碼按自己的重新導向要求做簡單修改: 複製代碼 代碼如下:<?php
$the_host = $_SERVER['HTTP_HOST'];
$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';
switch ($the_host)
{
case "www.iflyhigher.tk":
case "iflyhigher.tk":
$location = "Location: http://jb51.net" . $request_uri;
break;
case "blog.iflyhigher.tk":
$location = "Location: http://blog.jb51.net" . $request_uri;
break;
case "www.moiya.tk":
case "moiya.tk":
$location = "Location: http://jb51.net";
break;
default:
$location = "Location: http://jb51.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 !== 'jb51.net')//jb51.net是我現在的網域名稱
{
header('HTTP/1.1 301 Moved Permanently');//發出301頭部
header('Location: http://jb51.net'.$request_uri);//跳轉到我的新網域名稱地址
exit();
}
?>

注意,最後的exit()函數是一定要寫的,我最初就沒有寫,結果只能重新導向首頁,像http://blog.iflyhigher.tk/guestbook這樣的網頁,就無法進行重新導向。
最後,關於重新導向的一些細節
由於要對三個網域名稱進行重新導向,重新導向前,我首先將這三個網域名稱作為Addon Domain綁定到我的伺服器上去,並讓這三個網域名稱指向同一個檔案夾,這樣,只要修改這一個檔案夾中的.htaccess檔案或者index.php檔案就可以了。如果沒有.htaccess檔案或者index.php檔案,建立一個即可。
希望本文對需要進行301重新導向的朋友有協助。
轉載請表明出處: Gevin的部落格

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.