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