12038陌 发表于 5 天前

Discuz! X3.4主题分类和分类信息伪静态设置方法(亲测可用)

网上99%都是不完善和残缺的 或者各种不兼容,有的论坛还复制别人的DZ3.2版本的伪静态方法说是支持3.4版本的,全是让人浪费时间。

A、主题分类伪静态设置方法:

准备好修改的模板文件:forumdisplay.htm和forumdisplay_list.htm

这两个文件都在 \template\default\forum 的目录下(有修改过discuz模板,以你的主题文件路径为准,如/template/主题模板文件夹/forum)。

我们要先修改主题分类的:打开forumdisplay.htm的源代码:

默认主题一般在415行,当然如你的主题有修改过discuz模板,以你的主题文件路径为准

1.修改forumdisplay.htm文件中



修改为:



2.接下来再打开forumdisplay_list.htm的源代码:默认主题一般在162行,如你的主题有修改过模板,以你的主题文件为准找到:

$thread

修改为:

$thread

3.主题类别前缀【只显示文字】,2个地方需要修改

i、打开source\module\forum\forum_forumdisplay.php,查找

forum.php?mod=forumdisplay&fid='.$_G['fid'].'&filter=typeid&typeid='.$thread['typeid'].'

替换为:

forumtype-'.$_G['fid'].'-'.$thread['typeid'].'-1.html

ii、打开模板目录viewthread.htm,查找

forum.php?mod=forumdisplay&fid=$_G&filter=typeid&typeid=$_G

替换为:

forumtype-$_G-{$_G}-1.html

最后我们要把主题分类的伪静态规则添加到相应文件中,规则如下

(因为环境问题,只测试了.htaccess,其它请自行测试):

.htaccess 伪静态规则 请在RewriteRule ^forum-(\w+)-(+)\.html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1下面增加:

RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^forumtype-(\w+)-(\w+)-(+)\.html$ forum.php?mod=forumdisplay&fid=$1&filter=typeid&typeid=$2&page=$3&%1

注意:增加的规则不能放最后,特别是不能 不能 不能放在插件规则RewriteRule ^(+*)-(+)\.html$ plugin.php?id=$1 :$2&%1之后,不然访问分类伪静态会出现“插件不存在或删除”的错误。

httpd.ini 伪静态规则

RewriteRule ^(.*)/forumtype-(\w+)-(\w+)-(+)\.html(\?(.*))*$ $1/forum\.php\?mod=forumdisplay&fid=$2&filter=typeid&typeid=$3&page=$4&$5

web.config 伪静态规则

风之影赫 发表于 5 天前

感谢老大分享

风之影赫 发表于 5 天前

感谢分享,学习了

huoxianghui913 发表于 5 天前

测试了一下,A类 主题分类伪静态设置方法 亲测有效

B类的 不行 设置修改后   分类信息 列表内的帖子还是 动态列表分页 也是动态


不过还是谢谢你的分享

寒哥Gh61ac8 发表于 5 天前

A、主题分类伪静态设置方法这个方法可以用,测试过了,生效了
非常感谢
B类的方法测试了下 不生效,不知道原因出在哪里

huoxianghui913 发表于 5 天前

大概是第三方模版问题

huoxianghui913 发表于 5 天前

有这个可能 我还在测试 不过感谢你的教程,非常棒

风之影赫 发表于 5 天前

感谢大佬分享

寒哥Gh61ac8 发表于 5 天前

学习了,很好的分享

huoxianghui913 发表于 5 天前

学习了,很好的分享
页: [1]
查看完整版本: Discuz! X3.4主题分类和分类信息伪静态设置方法(亲测可用)