Discuz模板|Discuz插件|Discuz教程|Discuz素材免费下载

 找回密码
 立即注册

QQ登录

只需一步,快速开始

广告
温馨提示:本站所有DZ相关模板、插件、教程(包括DZ应用中心已下架插件、模板)所有用户可全部免费下载,无任何收费模式(不包括VIP版块非DZ资源,VIP版块需购买会员组方可下载),如本站没有您需要的插件或模板,请自行前往淘宝互站网送吗网等第三方站点搜索相关插件或模板进行低价格购买下载本站非常不建议用户浪费金钱前往DZ应用中心购买。

Discuz!主题分类和分类信息伪静态设置方法(修改文件实现非插件)

[复制链接]
tuyuanma 发表于 2020-3-17 15:46:52 | 显示全部楼层 |阅读模式
温馨提醒:禁止内容附带广告图片、二维码图片,否则将在不通知情况下永久禁言账号!
欢迎加入兔源码站长交流群,您的加入是我们前行的动力!

DZ站长建站交流群:493651246

[ 温馨提示:点击上方群文字,可快速加入QQ群 ]


网上99%都是不完善和残缺的 或者各种不兼容,有的论坛还复制别人的DZ3.2版本的伪静态方法说是支持3.4版本的,全是让人浪费时间。5 T7 y: @8 B) a9 f" L4 n; O! f# i1 [- x
0 p0 }4 e# |% B5 g. t+ L
A、主题分类伪静态设置方法:- L- A8 h6 U0 W0 ]4 y7 }, |8 {
6 |  ~6 j* n2 R2 {
准备好修改的模板文件:forumdisplay.htm和forumdisplay_list.htm9 b# f0 U0 u: g+ g- w$ i

$ {2 G% _* ^' {/ P这两个文件都在 \template\default\forum 的目录下(有修改过discuz模板,以你的主题文件路径为准,如/template/主题模板文件夹/forum)。
7 l3 s: U) [0 A% `  B/ b7 n
/ Q1 t; V0 @9 @7 N$ u6 k/ O, `我们要先修改主题分类的:打开forumdisplay.htm的源代码:
: i1 M) h- B9 y& Z% @9 m( j/ u: D' r# q3 \
默认主题一般在415行,当然如你的主题有修改过discuz模板,以你的主题文件路径为准
4 x- H- |' }3 g. y; _' O1 O( H% T$ B( n+ v! X7 ?9 g
1.修改forumdisplay.htm文件中
  1. <li><a href="forum.php?mod=forumdisplay&fid=$_G[fid]&filter=typeid&typeid=$id$forumdisplayadd[typeid]{if $_GET['archiveid']}&archiveid={$_GET['archiveid']}{/if}">
复制代码
修改为:
  1. <li><a href="forumtype-$_G[fid]-$id-$page.html{if $_GET['archiveid']}&archiveid={$_GET['archiveid']}{/if}">
复制代码
2.接下来再打开forumdisplay_list.htm的源代码:默认主题一般在162行,如你的主题有修改过模板,以你的主题文件为准找到:
  1. <a href="forum.php?mod=viewthread&tid=$thread[tid]&{if $_GET['archiveid']}archiveid={$_GET['archiveid']}&{/if}extra=$extra"$thread[highlight]{if $thread['isgroup'] == 1 || $thread['forumstick']} target="_blank"{else} onclick="atarget(this)"{/if} class="s xst">$thread[subject]</a>
复制代码
修改为:
  1. <a href="forum.php?mod=viewthread&tid=$thread[tid]{if $_G['gp_archiveid']}&archiveid={$_G['gp_archiveid']}{/if}"$thread[highlight]{if $thread['isgroup'] == 1 || $thread['forumstick']} target="_blank"{else} onclick="atarget(this)"{/if} class="s xst">$thread[subject]</a>
复制代码
3.主题类别前缀【只显示文字】,2个地方需要修改0 S. R0 C- X8 ?1 D9 D

$ N! c! G0 T& D6 di、打开source\module\forum\forum_forumdisplay.php,查找
  1. forum.php?mod=forumdisplay&fid='.$_G['fid'].'&filter=typeid&typeid='.$thread['typeid'].'
复制代码
替换为:
  1. forumtype-'.$_G['fid'].'-'.$thread['typeid'].'-1.html
复制代码
ii、打开模板目录viewthread.htm,查找
  1. forum.php?mod=forumdisplay&fid=$_G[fid]&filter=typeid&typeid=$_G[forum_thread][typeid]
复制代码
替换为:
  1. forumtype-$_G[fid]-{$_G[forum_thread][typeid]}-1.html
复制代码
最后我们要把主题分类的伪静态规则添加到相应文件中,规则如下
/ w4 h* Q2 a, T
! ^) I" E/ q2 P2 B9 e: Y" c+ B(因为环境问题,只测试了.htaccess,其它请自行测试):( d" ]) J6 Q- U2 E) e
( o& B7 B- Q% f& {7 d$ {4 P
.htaccess 伪静态规则 请在RewriteRule ^forum-(\w+)-([0-9]+)\.html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1下面增加:
  1. RewriteRule ^(.*)/forumtype-(\w+)-(\w+)-([0-9]+)\.html(\?(.*))*$ $1/forum\.php\?mod=forumdisplay&fid=$2&filter=typeid&typeid=$3&page=$4&$5
复制代码
web.config 伪静态规则
  1. <rule name="forum_forumtype">
    ; w8 c0 D3 l. O. J
  2. <match url="^(.*/)*forumtype-(\w+)-(\w+)-([0-9]+).html\?*(.*)[ DISCUZ_CODE_2 ]quot; />: B! }- ?# }7 Z: t6 f/ w/ b; M* \; Y
  3. <action type="Rewrite" url="{R:1}/forum.php\?mod=forumdisplay&fid={R:2}&filter=typeid&typeid={R:3}&page={R:4}&{R:5}" />
    7 j; f8 T; ?5 s$ a# M5 c
  4. </rule>
复制代码

8 d; x, a; B5 A: }9 W. dB、分类信息列表内的帖子设置伪静态方法:
' B& u9 [7 d/ E# U) N5 r& A# ~& l" A7 m" p9 J) A
打开 forum/forumdisplay_list.htm 模板,将
  1. <a href="forum.php?mod=viewthread&tid=$thread[tid]&{if $_GET['archiveid']}archiveid={$_GET['archiveid']}&{/if}extra=$extra"$thread[highlight]{if $thread['isgroup'] == 1 || $thread['forumstick']} target="_blank"{else}{/if} class="s xst">$thread[subject]</a>
复制代码
替换为:
  1. <a href="forum.php?mod=viewthread&tid=$thread[tid]"{$thread[highlight]} {if $thread['isgroup'] == 1 || $thread['forumstick']}target="_blank"{else}onclick="atarget(this)"{/if} class="s xst">$thread[subject]</a>
复制代码
修改后,当选中分类时,列表中的帖子链接将为伪静态,但帖子的分页链接仍是动态,还需进行以下修改。
8 F1 T5 e+ `) v: S" A( ?3 `  v; l
打开 source/module/forum/forum_forumdisplay.php 文件,将
  1. <a href="forum.php?mod=viewthread&tid=$realtid&".(!empty($multipate_archive) ? "$multipate_archive&" : '')."extra=$extra&page=$i">
复制代码
替换为:
  1. <a href="thread-$realtid-$i-1.html">
复制代码
  1. <a href="forum.php?mod=viewthread&tid=$realtid&".(!empty($multipate_archive) ? "$multipate_archive&" : '')."extra=$extra&page=$thread[pages]">
复制代码
替换为:
  1. <a href="thread-$realtid-$thread[pages]-1.html">
复制代码
这样,主题分类和分类信息帖子链接都会为伪静态,有兴趣的站长赶紧试试啊!

版权声明
1、转摘或引用本站内容资源须注明原网址,并标明本站网址(兔源码www.tuyuanma.com);
2、对于转摘或引用本站内容资源而引起的民事纠纷、行政处罚或其他损失,本站不承担责任;
3、对于不遵守本声明或其他违法、恶意使用本站内容者,本站保留其追究法律责任的权利。




自动排版 | 高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广告
493651246站长邮箱:tuyuanma@qq.com 站长QQ:3197813386

© 2001-2013 本站内容皆来自互联网及用户分享,如需删除请提供软著或商标证书。

快速回复 返回顶部 返回列表