修改.htaccess實現(xiàn)301重定向
我的偶笑論壇已經(jīng)開了快兩個月了,感覺對于搜索引擎很不友好,有一點(diǎn)就是鏈接不統(tǒng)一,由于discuz的后臺沒有設(shè)置將有帶www和沒帶www中的哪一個做為主網(wǎng)站的功能,所以我就直接動手了,剛剛修改偶笑論壇的.htaccess文件,終于實現(xiàn)了將所有的鏈接直接跳轉(zhuǎn)到www.的鏈接了,當(dāng)然現(xiàn)在地址統(tǒng)一對于搜索引擎來說將會是非常有用的,我也不用擔(dān)心我這個論壇對于搜索引擎不好了。我所用的bluehost的cpanel里面也可以直接修改,不過經(jīng)過我的測試好像不行,只能跳轉(zhuǎn)從http:///到http://www./,其它的子鏈接不行。所以只有自己手動修改.htaccess,剛開始按照網(wǎng)上的說明修改,還是感覺不行,最后發(fā)現(xiàn),原來這個添加是有順序講究的,所以大家以后在修改.htaccess的時候,如果發(fā)現(xiàn)不行,可以試著改變下順序。下面為偶笑論壇的.htaccess里面的內(nèi)容: # Use PHP5CGI as default AddHandler fcgid-script .php # 將 RewriteEngine 模式打開 RewriteEngine On # 修改以下語句中的 /discuz 為你的論壇目錄地址,如果程序放在根目錄中,請將 /discuz 修改為 / RewriteBase / # Rewrite 系統(tǒng)規(guī)則請勿修改 RewriteCond %{HTTP_HOST} !^www.$ [NC] RewriteRule ^(.*)$ http://www./$1 [L,R=301] RewriteRule ^archiver/((fid|tid)-[\w\-]+\.html)$ archiver/index.php?$1 RewriteRule ^forum-([0-9]+)-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2 RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ viewthread.php?tid=$1&extra=page\%3D$3&page=$2 RewriteRule ^space-(username|uid)-(.+)\.html$ space.php?$1=$2 RewriteRule ^tag-(.+)\.html$ tag.php?name=$1 下面再轉(zhuǎn)一篇不錯的文章給大家看下,我就是按照下面這個來修改的。 VIA 出于SEO、PR值傳遞、網(wǎng)址轉(zhuǎn)換的目的,在網(wǎng)站初建和網(wǎng)站遷移時我們都需要使用301重定向,通常包括域名對域名,目錄對目錄和一個獨(dú)立網(wǎng)址對另一個獨(dú)立網(wǎng)址的重定向。在bluehost虛擬主機(jī)上作301重定向,最常用的方法有2種: 1.直接編輯.htaccess。 2.用cPanel設(shè)定。 實質(zhì)二者都是修改文件.htaccess,只是前者手工編輯,后者是由cPanel完成。用cPanel操作相當(dāng)簡單,登陸你的 cPanel(bluehost虛擬主機(jī)可以選簡體中文)–>Domain–>Redirects,選擇相應(yīng)的選項即可完成設(shè)置,這里暫不討論。下面講一下直接編輯.htaccess的方法。 注意:在設(shè)置301重定向之前務(wù)必備份相應(yīng)目錄下的.htaccess文件。 1.重定向到www. 這種重定向旨在使域名唯一,是網(wǎng)站SEO必須要做的,后面重定向www.到也是出于同樣的原因,只是形式不同。 打開.htaccess文件,加入以下規(guī)則。(下面的規(guī)則是針對主域名的,子域名要修改) RewriteEngine On RewriteCond %{HTTP_HOST} !^www.$ [NC] RewriteRule ^(.*)$ http://www./$1 [L,R=301] 2.重定向www.到 RewriteEngine On RewriteCond %{HTTP_HOST} !^$ [NC] RewriteRule ^(.*)$ http:///$1 [L,R=301] 3.重定向old到www.new RewriteEngine On RewriteCond %{HTTP_HOST} !old$ [NC] RewriteRule ^(.*)$ http://www.new/$1 [L,R=301] 4.重定向old to new RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !old$ [NC] RewriteRule ^(.*)$ http://new/$1 [L,R=301] 5.重定向/file/file.php 到 other/otherfile/other.php RewriteCond %{HTTP_HOST} ^www.$ RewriteRule ^file/file.php$ http://www.other/otherfile/other.php [R=301,L] |
|