仿地宝版块目录化和贴子目录化(apache&nginx)

首先
打开source\function下的function_core.php
找到

1
2
3
4
5
6
7
8
9
10
11
12
13
    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,
        );

改为

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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}
—————————————————————————————
然后就是修改伪静态规则了
下面的是apache的
你可以直接在伪静态规则后面加上去,这样不会影响已收录的页面

1
2
3
4
5
6
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^/m([0-9]+)(/([0-9]+))?(/)?$ forum.php?mod=viewthread&tid=$1&extra=page\%3D$5&page=$3&%1 [L,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^/([0-9a-z_]+)(/([0-9]+))?(/)?$ forum.php?mod=forumdisplay&fid=$1&page=$3&%1 [L,NC]

然后下面的是nginx的伪静态规则
由于是自己写出来的,所以不一定优化的很好
但是实际上能用,由于我只在论坛板块,帖子和专题使用伪静态
所以规则也只有这三个

1
2
3
rewrite ^([^\.]*)/([0-9a-z_]+)(/([0-9]+))?(/)?$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
rewrite ^([^\.]*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last;
rewrite ^/([0-9]+)(/([0-9]+))?(/)?$ /forum.php?mod=viewthread&tid=$1&extra=page\%3D$5&page=$3&%1 last;

添加评论