發(fā)布:JB01 來源:
腳本學(xué)堂 【大 中 小】本文詳細(xì)介紹了,在php編程中實現(xiàn)301跳轉(zhuǎn),即301永久重定向的方法,感興趣的朋友可以參考學(xué)習(xí)下。本文轉(zhuǎn)自:
http://www.jbxue.com/article/14040.html本節(jié)內(nèi)容:
php實現(xiàn)的301跳轉(zhuǎn)。
什么是301轉(zhuǎn)向?
301轉(zhuǎn)向(或叫301重定向,301跳轉(zhuǎn))是當(dāng)用戶或搜索引擎向網(wǎng)站服務(wù)器發(fā)出瀏覽請求時,服務(wù)器返回的HTTP數(shù)據(jù)流中頭信息(header)中的狀態(tài)碼的一種,表示本網(wǎng)頁永久性轉(zhuǎn)移到另一個地址。
為什么要做網(wǎng)址轉(zhuǎn)向?
比如,為保護(hù)版權(quán),你擁有不同TLD的多個域名:
company.com
company.net
company.org
company.com.cn
company.cn
等。
很自然這些域名全部指向一個網(wǎng)站。如用company.com為主域名,其它域名就可以轉(zhuǎn)向到company.com。
或注冊了公司全稱域名longcompanyname.com,但太長 ,你也注冊了縮寫域名方便用戶記住lcn.com,其中一個做主域名,另一個就可以轉(zhuǎn)向到主域名。
為什么要用301轉(zhuǎn)向?
網(wǎng)址轉(zhuǎn)向方法主要包括:301轉(zhuǎn)向,302轉(zhuǎn)向,JavaScript轉(zhuǎn)向,PHP/ASP/CGI轉(zhuǎn)向,META REFRESH網(wǎng)頁META刷新,等。302轉(zhuǎn)向可能會有URL規(guī)范化問題。其它方法都是常用的作弊手法,當(dāng)然不是說不可以正當(dāng)?shù)赜茫椒ū旧頉]有錯,但被作弊者用多了,搜索引擎對這些可疑的轉(zhuǎn)向都很敏感。何必冒險呢。
當(dāng)網(wǎng)頁A用
php 301重定向轉(zhuǎn)到網(wǎng)頁B時,搜索引擎可以肯定網(wǎng)頁A永久的改變位置,或?qū)嶋H上不存在了,搜索引擎就會把網(wǎng)頁B當(dāng)作唯一有效目標(biāo)。
優(yōu)點:
第一,沒有網(wǎng)址規(guī)范化問題,第二,也很重要的,網(wǎng)頁A的PR網(wǎng)頁級別會傳到網(wǎng)頁B。
很多時候其它網(wǎng)站會鏈接到:
http://jbxue.com
http://www.jbxue.com/index.html
http://jbxue.com/index.html
而不是我們希望或常用的:
http://www.jbxue.com
這樣鏈接的PR也會傳遞到所有URL,如果用
php 301跳轉(zhuǎn)把前三個URL轉(zhuǎn)到:
http://www.jbxue.com
PR也就集中在網(wǎng)頁http://www.jbxue.com了。
怎樣做301轉(zhuǎn)向
如果你用的是Unix/Linux主機,可以用file.gif文件(Unix/Linux中用于目錄特定指令如密碼,轉(zhuǎn)向,錯誤處理等的文件)。
比如把/old.htm轉(zhuǎn)到http://www.jbxue.com/new.htm,可以用這個指令:
復(fù)制代碼代碼示例:
redirect 301 /old.htm http://www.jbxue.com/new.htm
或
redirect permanent /old.htm http://www.jbxue.com/new.htm
如果要把所有http://jbxue.com形式的URL用301重定向轉(zhuǎn)到 http://www.jbxue.com,包括:
復(fù)制代碼代碼示例:
http://jbxue.com/about.htm
轉(zhuǎn)到 http://www.jbxue.com/about.htm
及
http://jbxue.com/dir/index.htm
轉(zhuǎn)到 http://www.jbxue.com/dir/index.htm
等等,還要用到mod_rewrite:
復(fù)制代碼代碼示例:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^jbxue.com [NC]
RewriteRule ^(.*)$ http://www.jbxue.com/$1 [L,R=301]
如果使用 Windows主機,應(yīng)該在控制面板做301轉(zhuǎn)向設(shè)定。
補充 :在網(wǎng)址規(guī)范化評論里回答石頭王的問題,可能對大家有幫助:
據(jù)我所知,HTML無法做301轉(zhuǎn)向。在HTML里只能做JS或META REFRESH,但不是301轉(zhuǎn)向。
HTML一被讀取,就已經(jīng)返回200 OK狀態(tài)碼了。
PHP可以做301轉(zhuǎn)向:
PHP代碼:
復(fù)制代碼代碼示例:
<?
Header( “HTTP/1.1 301 Moved Permanently” );
Header( “Location: http://www.jbxue.com” );
?>
另外,DOThtaccess文件只是一個普通文字文件,你用Notepad建這個文件,放上指令,存在你賬號的根目錄下就行了。
不需要修改Apache。