Discuz!社区论坛URL伪静态:版块目录化和贴子目录化教程

垃圾站博主通过学习《百度搜索引擎优化指南》v2.0 网站结构了解到合理的网站结构应该是一个扁平的树型网状结构。具有“扁平的树型网状结构”的网站每增加一个内容页,都会给栏目页增加一定的权重。
首先:了解什么是扁平的树型网状结构?具体类似如下:

首页:http://www.lajiz.cn/
列表页:http://www.lajiz.cn/discuz/
文章页:http://www.lajiz.cn/discuz/b288/

网站权重是:二级域名>目录>静态页>动态页。规范的URL是使整站URL目录化,目录层次不超过2个。因此说这对于网站SEO优化是很有利的!

那么discuz论坛默认的地址类型是怎么样的呢?如下:

首页:http://www.lajiz.cn/forum.php
栏目页:http://www.lajiz.cn/forum-88-1.html
内容页:http://www.lajiz.cn/thread-9188-1-1.html

这样的URL是分散的,并不是网状结构,不利于权重的传递。
在这里垃圾站博客给大家提供一个方法,通过伪静态方法来实现Discuz! X的地址目录化(目前只支持Apache服务器)。

关键教程内容:
1、首先,打开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,
        );

2、然后进入网站后台->全局->”seo设置”->”url静态化”
在”论坛主题列表页”的格式中填写:{fid}/{page}
在”论坛主题内容页”的格式中填写:{fid}/m{tid}/{page}

3、关于伪静态规则的添加:
在伪静态规则(.htaccess文件,一般在根目录下),记事本打开,在最后添加如下规则:

## 保留前面的部分可以不影响已经被搜索引擎收录的页面

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]

然后工具,更新缓存,即实现了版块目录化,贴子目录化
在”论坛”-”版块管理”中的”绑定别名”即是版块目录名:
如:
版块的”绑定别名“为”lajiz”,那么访问地址就是:http://www.lajiz.cn/lajiz/

本文固定链接: http://www.lajiz.cn/2314.html | 垃圾站

该文章由 sdujane 于2014年03月09日发表在 Discuz教程 分类下, 访客可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客!
原创文章,转载请注明: Discuz!社区论坛URL伪静态:版块目录化和贴子目录化教程 | 垃圾站
关键字: ,

Discuz!社区论坛URL伪静态:版块目录化和贴子目录化教程:目前有6 条留言

  1. 地板
    Musk100:

    404怎么搞

    2014-09-23 上午 8:46 [回复]
  2. 板凳
    专注绿软:

    收了

    2014-03-13 上午 7:21 [回复]
  3. 沙发
    夜蝠翔空:

    先留个记号。这个貌似很有用啊

    2014-03-10 下午 5:16 [回复]
    • 最好新建的站点这样弄,要是老站就不好搞了!

      2014-03-13 下午 7:10 [回复]

发表评论

快捷键:Ctrl+Enter