立即注册找回密码
 

慧之家

[discuz开发] 主题分类伪静态(已亲测)iis/apache/nginx

[复制链接]

368

主题

1331

帖子

1124

热度值

 任何值得你去的地点都没有捷径只有努力! 

最佳原创年度贡献荣誉管理优秀版主突出贡献灌水之王宣传达人推广达人热心会员活跃会员最佳新人论坛元老

发表于 2019-5-13 23:37:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册  

x
首先准备好修改的模板文件:forumdisplay.htm、forumdisplay_list.htm,这两个文件都在 \template\default\forum 的目录下。

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

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

  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}">
复制代码


接下来再打开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}{/if}>$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}{/if}>$thread[subject]</a>
复制代码


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

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

  1. forum.php?mod=forumdisplay&fid='.$_G['fid'].'&amp;filter=typeid&amp;typeid='.$thread['typeid'].'
复制代码


替换为

  1. forumtype-'.$_G['fid'].'-'.$thread['typeid'].'-1.html
复制代码


2、打开模板目录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
复制代码


最后我们要把主题分类的伪静态规则添加到相应文件中,规则如下(因为环境问题,只测试了.htaccess,其它请自行测试):

nginx .htaccess 伪静态规则

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


httpd.ini 伪静态规则

  1. RewriteRule ^(.*)/forumtype-(\w+)-(\w+)-([0-9]+)\.html(\?(.*))*$ $1/forum\.php\?mod=forumdisplay&fid=$2&filter=typeid&typeid=$3&page=$4&$5
复制代码


Apache web.config 伪静态规则

  1. <rule>
  2. <match url="^(.*/)*forumtype-(\w+)-(\w+)-([0-9]+).html\?*(.*)[ DISCUZ_CODE_2 ]quot; />
  3. <action type="Rewrite" url="{R:1}/forum.php\?mod=forumdisplay&fid={R:2}&filter=typeid&typeid={R:3}&page={R:4}&{R:5}" />
  4. </rule>                        本文地址:http://itbyc.com/cms/discuz/15162.html
复制代码

转载请注明出处。
该会员没有填写今日想说内容.
使用高级回帖 (可批量传图、插入视频等)

发表回复

您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则   Ctrl + Enter 快速发布  

发帖时请遵守我国法律,网站会将有关你发帖内容、时间以及发帖IP地址等记录保留,只要接到合法请求,即会将信息提供给有关政府机构。
站点服务大厅 官方群