這幾天在一個站長群中幾次看到討論關於網站301重定向的問題,在討論的過程中,學習到了不少如何合理地去設置網站的301重定向腳本,也總結了自己之前做站時所未能注意到的細節,在這裡,把這些內容總結並分享給廣大站長朋友。
在這裡,我主要針對LINUX主機下的用DEDECMS架起的網站作301重定向分析(主要是利用.htaccess檔來設置重定向),一是因為篇幅有限,二是這樣比較有針對性,如果是用其它方式架站的朋友, 可以根據自己的實際情況作相應的修改和設置,本文僅提供一種方法,一種思路。
一、 建立.htaccess檔
在本地的WINDOWS平臺下,是無法直接建立.htaccess檔的,系統會提示必須填寫檔案名,因為對於WIN來說,檔案名為「.htaccess」的只是一個只有檔尾碼而沒有檔案名的檔,而在LINUX下, 這種檔是系統檔。 解決的辦法就是,先用FTP在伺服器上建立一個.htaccess檔的,然後再下載到本地主機編輯,檔下載下來後,是允許修改的,上面的情況也就不會出現了。 這個問題當初困擾了我很久,這裡說明一下可能會對.htaccess檔不怎麼熟悉的朋友有好處。
二、 集中根功能變數名稱和次層網域權重
新手站長們有時候會對類似于www.xxxx.com和xxxx.com這兩個功能變數名稱的權重比較迷惑,在建站初期可能會為到底選擇哪個作為主功能變數名稱費盡心機。 我認為,頂層網域名權重最高,也就是說,cytao.com的權重比其它的次層網域高,因此,選擇功能變數名稱時,頂層網域名是很好的選擇。 但是,帶WWW的次層網域比較符合使用者的習慣,看起來感覺也好像順眼一點(純屬個人見解),所以,如果選擇次層網域作為主功能變數名稱的話,我們就得把其它的功能變數名稱(包括頂層網域名)的權重轉移到主功能變數名稱上, 解決這個問題的方法就是在.htaccess檔里加上兩行301重定向代碼,代碼在下面給出樣例。
三、 解決網站預設頁面的權重分散問題
由於自己對於DEDECMS比較熟悉,之前建的站都是用它架構。 直到有一天,跟另一站長交換友情連結時,他告訴我,我的網站首頁有跳轉,訪問www.xxxx.com時跳轉到www.xxxx.com/index.html,因此拒絕和我交換連結。 於是我發現,DEDECMS的預設首頁為index.php,這個檔先是判斷是否存在靜態首頁檔,若存在,則跳轉。 於是我站就被跳轉到了靜態檔上了。 後來我想了想,其實這就是網站的預設版面設定問題,只要在.htaccess檔裡設置好預設頁檔案名和順序就行了。 建議用CMS建站的朋友,回去查看一下自己的站是否也有這種情況並作相應的修改。
下面給出我站的.htaccess檔代碼,朋友們可以參考一下:
Options +FollowSymlinks
RewriteEngine on
DirectoryIndex index.html index.htm index.php
RewriteCond %{HTTP_host} ^cytao.com [nc]
RewriteRule ^(.*)$ HTTP://www.cytao.com/$1 [r=301,nc]
ErrorDocument 404 /404.htm
注:上面程式碼與行之間的空行不能刪除,否則出錯;DirectoryIndex的檔順序必須根據自己網站的情況設置。