byadmin 發表於 2013-5-5 23:01:32
, 2806人已閱讀 , 0人回應
Discuz默認是提供簡單的扁平的樹型網狀結構優化的,而有些用戶可能更希望實現版塊目錄化甚至帖子目錄化,那麼默認的規則是無法實現的,大家不瞭解偽靜態的可以先看看Discuz! X2.5論壇不同環境配置偽靜態的方法,然後再結合下面的方法來修改就可以實現目錄化偽靜態了。
此方法需要修改源碼,修改前請備份好修改文件
首先
打開source\function下的function_core.php
找到
- if($type == 'forum_forumdisplay') {
- list(,,, $fid, $page, $extra) = func_get_args();
- $r = array(
- '{fid}' => empty($_G['setting']['forumkeys'][$fid]) ? $fid : $_G['setting']['forumkeys'][$fid],
- '{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['setting']['forumkeys'][$fid]) ? $fid : $_G['setting']['forumkeys'][$fid],
- '{page}' => $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['setting']['forumkeys'][$fid]) ? $fid : $_G['setting']['forumkeys'][$fid],
- '{tid}' => $tid,
- '{page}' => $page ,
- '{prevpage}' => $prevpage && !IS_ROBOT ? $prevpage : 1,
- );
複製代碼 然後進入網站後台--全局->''seo設置"->"URL靜態化"
在"論壇主題列表頁"的格式中填寫:{fid}/{page}
在"論壇主題內容頁"的格式中填寫:{fid}/m{tid}/{page}
然後工具,更新緩存,即實現了版塊目錄化,貼子目錄化,在"論壇"-"版塊管理"中的"綁定別名"即是版塊目錄名:然後查看偽靜態規則,把規則覆蓋之前的默認偽靜態規則,再測試即可完成版塊和帖子的目錄化偽靜態。
|
|