如何實現301重定向
Linux 主機 Apache服務器 Mod-Rewrite 模式:通過.htaccess文件
當瀏覽器或搜索引擎spider發送一個頁面請求時,Web服務器就會檢查一個名為'.htaccess'的文件,這個文件指明了如何處理頁面請求,通過修改設置'.htaccess'文件就可以告知搜索引擎某個頁面是302轉向(臨時跳轉)還是301重定向(永久性跳轉)。有的Linux主機服務器還支持你在管理后台直接設置301轉向。如果不能在后台設置,實現301重定向步驟也很簡單:新建一個文件名為.htaccess.txt的文檔(注意前面的點號不能遺漏),在txt文檔中寫入以下301轉向代碼:
Options +FollowSymLinks
RewriteEngine on
rewritecond %{http_host} ^nowamagic.net [nc]
rewriterule ^(.*)$ http://www.nowamagic.net/$1 [r=301,nc]
或者
RewriteEngine On
RewriteCond %{HTTP_HOST} !^nowamagic.net$ [NC]
RewriteRule ^(.*)$ http://www.nowamagic.net/$1 [L,R=301]
保存文件,將文件名稱末尾的.txt去掉,上傳到網站根目錄即可。上面的代碼表示整站所有的以帶www的域名www.nowamagic.net為地址的網頁都會301轉向到不帶www的域名nowamagic.net(不僅是首頁,子目錄/網頁也可以)。如果是其他域名要重定向到 nowamagic.net 這個新域名,則在.htaccess文件中加入如下重定向代碼:
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)$ http://www.nowamagic.net/$1 [L,R=301]
Windows主機IIS下的301轉向設置
在IIS 管理后台 -> 選擇你要重定向的文件或文件夾 -> 右鍵"重定向到URL" -> 輸入需要轉向的目標URL ->選擇"資源的永久重定向"。
另外,如果你的Windows虛擬主機空間支持ISAPI_Rewrite,那么在IIS下利用ISAPI_Rewrite不僅可以實現url 重寫,還可以用來設置301轉向,下面分別是三個版本的ISAPI_Rewrite對應的帶www的域名301轉向到不帶www域名的代碼:
# ISAPI_Rewrite 1.3 版本 域名的301重定向
RewriteCond Host: ^www\.farlee\.info$
RewriteRule (.*) http\://farlee\.info$1 [I,R]
# ISAPI_Rewrite 2.x 版本
RewriteCond Host: ^www\.farlee\.info$
RewriteRule (.*) http\://farlee\.info$1 [I,RP]
# ISAPI_Rewrite 3.x 版本
RewriteCond %{HTTP:Host} ^www\.farlee\.info$
RewriteRule (.*) http\://farlee\.info$1 [NC,R=301]
在其他情況下,如不同域名之間在IIS下的301重定向代碼請看詳細介紹:ISAPI Rewrite實現IIS 301轉向。
PHP 301 重定向代碼
301重定向也可以在php文件中通過加入php header來實現,代碼如下:
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://nowamagic.net/newpage.html");
exit();
?>
其它參考:
http://blog.tianya.cn/post-5202714-67891296-1.shtml