discuz URL伪静态版块目录化和贴子目录化

那么什么是扁平的树型网状结构呢?

例如:首页:http://www.XXX.com
      栏目页:
http://www.XXX.com/discuzx/ 
      内容页:
http://www.XXX.com/discuzx/m826/

像这样的页面就是一个“扁平的树型网状结构”。每增加一个内容页,都会给栏目页增加一定的权重。像地宝网的URL就是很规范的,整站URL目录化,目录层次不超过2个。对于SEO是很有利的。

那么现在discuz官方的地址是怎么样的呢?

首页:http://www.discuz.net/forum.php
栏目页:http://www.discuz.net/forum-21-1.html
内容页http://www.discuz.net/thread-2281986-1-1.html

这样的URL是分散的,并不是,不利于权重的传递。

在这里给大家提供一个方法,通过伪静态方法来实现discuzx的地址目录化(目前只支持Apache服务器)。

首先

打开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}

然后下载.htaccess文件,传到网站根目录

htaccess.rar

然后工具,更新缓存,即实现了版块目录化,贴子目录化

在"论坛"-"版块管理"中的"绑定别名"即是版块目录名:

如: 版块中的"绑定别名"为"discuzx",那么访问地址就是:http://www.XXX.com/discuzx/

评论 (7)
  1. avatar
    沙发
    达济学历教育 2011-10-27 06:19

    代码好长啊。

  2. avatar
    板凳
    北京婚纱照 2011-11-04 08:26

    呵呵 不错哦 谢谢 博主的分享哦 博主 辛苦了 希望博主事事顺心

  3. avatar
    地板
    婚纱摄影工作室 2011-11-10 02:08

    哎博主啊 我对代码这东西不认识啊

  4. avatar
    4 楼
    青岛软件开发 2011-11-14 03:45

    很好的博客,过来支持啦

  5. avatar
    5 楼
    草本护肤品 2011-11-14 03:45

    呵呵,虽然不懂但也是要过来支持的呀

  6. avatar
    6 楼
    图图 2011-11-17 14:08

    如果是虚拟机的话好像无效,服务器上也要改的

  7. avatar
    7 楼
    孤寂如雲 2011-11-27 03:21

    试过的,成功,帖子文章都没问题。
    但游戏出问题了,一直显示加载中。