湖中沉 发表于 2011-4-24 16:52:45

迎接DX2发布,版块URL伪静态目录化,给力吧!

DX2 RC 就快要发布了,新版本里有大家期待的众多新功能,但大家期待的版块目录化就目前的版本来看还没有实现.版块目录化的好处我想在这里就不用多说了,在未来我想也会成为趋势.
我和大多数草根站长一样,热衷于discuz,但又对PHP不熟,也没有专门的去学过,这个功能也是研究过很多天才研究出来.
下面就把版块目录化分享给大家,希望对喜欢这个功能的人有用.



首先说明下,这是在Apache Web Server(虚拟主机用户)环境下测试可以用的,其他环境未测式.如果你是Apache虚拟主机用户的话并且主机支持伪静态,那么可以根据以下操作方法实现我们的"版块目录化".
第一步:
进入后台--论坛--编辑版块--基本设置--绑定别名.
这里以上图为例,我们填写为"yizhi",当然你也可以填别的.

第二步:
后台--全局--SEO设置--URL 静态化.
将"论坛主题列表页"格式更改为"{fid}/{page}",然后勾选"可用"点击提交.

第三步:
编辑你网站目录下伪静态规则文件".htaccess",如果没有此文件,下面附件我提供.



RewriteRule ^forum-(\w+)-(+)\.html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1
更改为

RewriteRule ^(\w+)/(+)$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1
然后在最下行增加一句规则:

RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(\w+)/$ forum.php?mod=forumdisplay&fid=$1
这一句规则就是版块目录化规则.
第四步:
网站目录:source/function/function_core.php
首先我们把这个文件复制一份留作备份.以便你不需要此功能后可以直接恢复.
然后我们用DW编辑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,
                );



'{page}' => $page ? $page : 1,更改为

'{page}' => $page,

然后保存.

最后一步,更新缓存.到首页看看效果吧,是不是实现版块目录化了呢?

開心國王 发表于 2011-5-15 14:07:50

{:4_85:} 老菜鳥...看的有點暈...

gqx1016 发表于 2011-5-21 17:16:01

看完了不知道用还是不用,不知道从何下手啊,顶一个先

flashline 发表于 2011-6-9 14:21:00

本帖最后由 flashline 于 2011-6-9 14:21 编辑

然后在最下行增加一句规则:
RewriteCond %{QUERY_STRING} ^(.*)$

RewriteRule ^(\w+)/$ forum.php?mod=forumdisplay&fid=$1
复制代码
这一句规则就是版块目录化规则.
请问这个规则怎么转为iis的?
页: [1]
查看完整版本: 迎接DX2发布,版块URL伪静态目录化,给力吧!