DedeCMS設(shè)置為靜態(tài)頁面,能減輕服務(wù)器壓力,對(duì)于更新內(nèi)容不是很多的企業(yè)站還是非常好的,也利于搜索引擎蜘蛛抓取,缺點(diǎn)是每次需要手動(dòng)更新,對(duì)于內(nèi)容較多、分頁較多的小說站、圖片站就非常麻煩。
一般的服務(wù)器都可以采用動(dòng)態(tài)頁面,為了更好的獲得搜索引擎喜愛,可以采用全站URL偽靜態(tài)的辦法。Apache環(huán)境參考文章《DedeCMS實(shí)現(xiàn)全站PHP偽靜態(tài)》,筆者對(duì)IIS環(huán)境并不熟悉,找了一個(gè)小白教程分享給大家。
IIS服務(wù)器上安裝urlrewrite模塊
鏈接:http://pan.baidu.com/s/1b7lkHw 密碼:d74v
安裝過程很簡(jiǎn)單就不一一描述了。安裝后可以看到"URL重寫"
在左側(cè)找到需要重寫的網(wǎng)站,單擊該網(wǎng)站后,雙擊中間的“URL重寫”。
在彈出的窗口,選擇右側(cè)的“入站規(guī)則”下的“導(dǎo)入規(guī)則”,由于筆者已經(jīng)導(dǎo)入過了,中間有顯示,默認(rèn)是空的。
選擇導(dǎo)入Apache配置 .htaccess 文件,適合像筆者對(duì)IIS環(huán)境不熟悉,對(duì)Apache熟悉的用戶,當(dāng)然你熟悉的正則表達(dá)式的話,就自己“添加規(guī)則”吧。就不一一介紹了,上面的下載地址有DedeCMS通用的偽靜態(tài)規(guī)則,可以根據(jù)實(shí)際需要修改。
DedeCMS偽靜態(tài)配置
相關(guān)閱讀《DedeCMS實(shí)現(xiàn)全站PHP偽靜態(tài)》,注意規(guī)則上有些改動(dòng)
文章、列表偽靜態(tài)(/view-1.html、/list-1/)
打開/include/helpers/channelunit.helper.php
//動(dòng)態(tài)文章 if($cfg_rewrite == 'Y') { return $GLOBALS["cfg_plus_dir"]."/view-".$aid.'-1.html'; }
替換為
//動(dòng)態(tài)文章 if($cfg_rewrite == 'Y') { return "/view-".$aid.'.html'; }
意思是:將默認(rèn)的 /plus/view-1-1.html 文章鏈接格式改為 /view-1.html。繼續(xù)查找
//動(dòng)態(tài) $reurl = $GLOBALS['cfg_phpurl']."/list.php?tid=".$typeid;
替換為
//動(dòng)態(tài) $reurl = "/list-".$typeid."/";
列表采用 /list-1/ 代表是目錄,如果是/list-1.html代表是一個(gè)頁面,權(quán)重更高。
列表分頁偽靜態(tài)(/list-1-2/)
打開/include/arc.listview.class.php,找到
/** * 獲取動(dòng)態(tài)的分頁列表 *
往下找到
$plist = str_replace('.php?tid=', '-', $plist); $plist = str_replace('&TotalResult=', '-', $plist); $plist = preg_replace("/&PageNo=(\d+)/i",'-\\1.html',$plist);
修改為
$plist = str_replace('/plus', '', $plist); $plist = str_replace('.php?tid=', '-', $plist); $plist = str_replace('&TotalResult=', '-', $plist); $plist = preg_replace("/&PageNo=(\d+)/i",'-\\1.html',$plist); $plist = str_replace('.html','/' ,$plist); //by7
如果不做處理的話,列表頁的首頁會(huì)有兩個(gè)URL(/list-1/和/list-1-1/),這會(huì)分散權(quán)重,下面取消第一頁分頁修改方法。共有兩處修改,找到
//獲得上一頁和下一頁的鏈接 if($this->PageNo != 1) { $prepage.="<a href='".$purl."PageNo=$prepagenum'><</a>"; $indexpage="<a href='".$purl."PageNo=1'>首頁</a>"; } else { $indexpage="<span>首頁</span>"; }
修改為
//獲得上一頁和下一頁的鏈接 by7 $typedir= $GLOBALS['cfg_basehost'] . "/list-".$this->TypeID; if($this->PageNo != 1) { if($prepagenum==1) { $prepage.="<a href=\"".$typedir."/\"><</a>"; } else { $prepage.="<a href='".$purl."PageNo=$prepagenum'><</a>"; } $indexpage="<a href=\"".$typedir."\">首頁</a>"; } //by7
往下找到
$listdd.="<a href='".$purl."PageNo=$j'>".$j."</a>";
修改為
//by7 if($j==1) { $listdd.="<a href=\"".$typedir."/\">".$j."</a>"; } else { $listdd.="<a href='".$purl."PageNo=$j'>".$j."</a>"; } //by7
文章分頁偽靜態(tài)(/view-1-2.html)
打開/include/arc.archives.class.php,找到
/** * 獲得動(dòng)態(tài)頁面分頁列表 *
繼續(xù)往下找到
$PageList = preg_replace("#.php\?aid=(\d+)#i", '-\\1-1.html', $PageList);
修改為
$PageList = preg_replace("#.php\?aid=(\d+)#i", '-\\1.html', $PageList);