Discuz3.2自定义URL伪静态和帖子目录自定义伪静态 – Jaydon

Discuz3.2自定义URL伪静态和帖子目录自定义伪静态

/ 6评 / 0

1

以上图是我本人在www.alikudou.com和www.meilihumen.com亲自测试,感觉看着还不错,齐码比默认的好看。

我网站一般是用wdcp管理面板···nginx+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文件,一般在根目录下),记事本打开,在最后添加如下规则:

## 保留前面的部分可以不影响已经被搜索引擎收录的页面
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]

然后工具,更新缓存,即实现了版块目录化,帖子目录化在”论坛”-”版块管理”中的”绑定别名”即是版块目录名。

  1. 一元营销说道:

    确实不错,这个要实话实说!

  2. 增达信购说道:

    博文值得拜读。受益了!

  3. zengda说道:

    研究研究,学习学习。

  4. Augus说道:

    根据上诉改了代码,
    由于我用的是nginx。
    在配置,论坛内容主题页的时候。 显示 403.
    求解

  5. Augus说道:

    我的q: 282878459
    Q不到你啊~

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注