DISCUZX版塊和貼子的URL進行目錄化偽靜態

合理的網站結構應該是一個扁平的樹型網狀結構這樣的網站利於seo優化。那我們如何對DISCUZX進行目錄偽靜態化?
打開 source\function下的function_core.php
找到

if($type == ‘forum_forumdisplay’) {
list(,,, $fid, $page, $extra) = func_get_args();
$r = array(
‘{fid}’ => empty($_G) ? $fid : $_G,
‘{page}’ => $page ? $page : 1,
);
} elseif($type == ‘forum_viewthread’) {
list(,,, $tid, $page, $prevpage, $extra) = func_get_args();
$r = array(
‘{tid}’ => $tid,
‘{page}’ => $page ? $page : 1,
‘{prevpage}’ => $prevpage && !IS_ROBOT ? $prevpage : 1,
);

改為

if($type == ‘forum_forumdisplay’) {
list(,,, $fid, $page, $extra) = func_get_args();
$r = array(
‘{fid}’ => empty($_G) ? $fid : $_G,
‘{page}’ => $page ? ($page>1?’p’.$page:”) : ”,
);
} elseif($type == ‘forum_viewthread’) {
list(,,, $tid, $page, $prevpage, $extra) = func_get_args();
$fid = DB::result_first(“SELECT fid FROM “.DB::table(‘forum_thread’).” WHERE tid = ‘$tid'”);
$r = array(
‘{fid}’ => empty($_G) ? $fid : $_G,
‘{tid}’ => $tid,
‘{page}’ => $page ? $page : 1,
‘{prevpage}’ => $prevpage && !IS_ROBOT ? $prevpage : 1,
);
}

然後進入網站後吧->”seo設置”->”url靜態化”
在”論壇主題列表頁”的格式中填寫:{fid}/{page}
在”論壇主題內容頁”的格式中填寫:{fid}/{tid}-{page}-{prevpage}.html

NGINX偽靜態規則:

rewrite ^(*)/(\w+)/p(+)$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
rewrite ^(*)/(\w+)/(+)-(+)-(+)\.html$ $1/forum.php?mod=viewthread&tid=$3&extra=page%3D$5&page=$4 last;
rewrite ^(*)/(\w+)/$ $1/forum.php?mod=forumdisplay&fid=$2 last;


然後在”論壇”-“版塊管理”中的”綁定別名”即是版塊目錄名。

最後“工具”-“更新緩存”,即實現了版塊目錄化,貼子目錄化


分類