Discuz! X3.2 分区版块伪静态设置完美解决方案

修行者 网站建设 9426浏览 25评论

第一次用DZ论坛程序建站,在Discuz! X3.2后台的SEO设置里开启URL 静态化后发现论坛版块和帖子内容页面都成功伪静态了,但是但是论坛版块上层分区还是“forum.php?gid=”这样的动态URL。原来Discuz默认是不支持也无法通过后台设置分区伪静态的,这也算是DZ的一个小BUG吧。不过想要实现论坛分区伪静态也不是没有办法,那就是修改源文件了,下面详细记录下Discuz! X3.2 分区版块伪静态设置方法。

1、添加DZ分区伪静态规则,而不同服务器的伪静态规则写法是不一样的,比如我希望以forum-gid.html的url形式访问分区:

Nginx服务器Discuz分区伪静态规则

rewrite ^([^\.]*)/forum-([0-9]+)\.html$ $1/forum.php?gid=$2 last;

apache服务器Discuz分区伪静态规则

RewriteRule ^(.*)/forum-(\w+)\.html(\?(.*))*$ $1/forum\.php\?gid=$2&$4

注意这条伪静态规则必须放在插件伪静态规则的上面,否者或出现"插件不存在或已关闭" 的错误信息提示,伪静态设置成功后我们就可以通过forum-1.htm这样url访问论坛分区了。

2、修改模板文件,以默认模板风格default为例。

首先我们打开“template\default\forum\discuz.htm”文件找到下面这句代码

<h2><a href="{if !empty($caturl)}$caturl{else}forum.php?gid=$cat[fid] {/if}" style="{if $cat[extra][namecolor]}color: {$cat[extra][namecolor]};{/if}">$cat[name]</a></h2>

将里面forum.php?gid=$cat[fid] 替换为 forum-$cat[fid].html

网上很多教程方法都是到这一步就结束了,但是其实这样并没有完美解决Discuz!分区版块伪静态的问题,因为这样伪静态后面包屑导航处的分区链接还是动态,彻底解决这个问题还需进行下一步修改。

3、修改“source/module/forum/”目录下的文件

版块页面包屑导航分区链接修改

打开 source/module/forum/forum_forumdisplay 文件

将 Location: forum.php?gid=$_G[fid] 替换为 Location: forum-$_G[fid].html

将 forum.php?gid='.$forum_up['fid'].' 替换为 forum-'.$forum_up['fid'].'.html

将 forum.php?gid='.$forum_top['fid'].' 替换为 forum-'.$forum_top['fid'].'.html

帖子页面包屑导航分区链接修改

打开 source/module/forum/forum_viewthread.php 文件

将 ? 'forum.php?gid='.$fup : 替换为 ? 'forum-'.$fup.'.html' : (共两处)

帖页面包屑导航分区链接修改

打开 source/module/forum/forum_post.php 文件

将 ? 'forum.php?gid='.$fup : 替换为 ? 'forum-'.$fup.'.html' : (共两处)

完成以上步骤后论坛全部页面的分区链接都实现了完美伪静态。

注:分区伪静态方法本人已在Discuz X3.2下测试可用,Discuz其他版本应该也一样有效,如果没有效果请告诉我您使用的是哪个版本的DZ程序,以便我修正该教程文章。

修行者

本文地址http://xxzh.org/web/Discuz-fenqu-weijingtai.html

版权说明:如非注明,本站文章均为 修行者博客 原创,转载请注明出处和附带本文链接。

已有25位小伙伴发表了看法
  1. 年华

    年华游客 回复Ta 插件不存在或已关闭 怎么解决

  2. wang

    wang游客 回复Ta 啥也不说了,确实好用,谢谢诶。

  3. 到此一游

    到此一游游客 回复Ta 按此方法修改,正常显示,可发帖时空白,回帖是空白。是怎么回事哦。我新装了dz测试也是一样。就是好像把哪个代码阻拦了跳不出来一样。

  4. 无相大叔

    无相大叔游客 回复Ta 我的QQ号5568859 希望大师能拉一把,谢谢!

  5. 无相大叔

    无相大叔游客 回复Ta 全局伪静态解决不了,三四级网页可以解决。。首页和二级页还是动态的。改了代码提示,插件不存在或已关闭 求帮助,急。。。。。。搞两天了!

  6. 笑傲江湖

    笑傲江湖游客 回复Ta 想问下 apache 我帖子和板块已经做了伪静态是目录形式的。请问一级板块伪静态怎么做成目录形式?

  7. muyu0526

    muyu0526游客 回复Ta 请问,iis服务器的怎么弄?

  8. 静态地址后但是页面是空白的

    静态地址后但是页面是空白的游客 回复Ta 楼主,我设置后显示了静态地址,但是页面是空白的,怎么回来呢

  9. 徐州广告片制作

    徐州广告片制作游客 回复Ta 不错,支持一下

  10. 网上兼职网站

    网上兼职网站游客 回复Ta 是写得不错 值得细看

  11. 在线兼职

    在线兼职游客 回复Ta 写的不错,赞!

  12. 威客圈子

    威客圈子游客 回复Ta 嗯,值得认真看看,很有学习价值,期待继续更新!!

  13. 徐州广告片制作

    徐州广告片制作游客 回复Ta 没用过dz,表示 试试看如何

  14. 梦想家园

    梦想家园游客 回复Ta 好好学习

  15. 石头

    石头游客 回复Ta DZ3.0修改后首页打开没问题。但是小分区打开空白、

    • 张近天

      张近天游客 回复Ta @石头 我也是一样,好烦恼,现在网站都打不开了。。。。我qq:1745886140愿意交朋友。。

  16. 斌行天下

    斌行天下游客 回复Ta 这个方案,因为我的是在iis7下面的,我将伪静态改成了:
    <rule name="forum_forumid">
    <match url="^([^.]*)/forum-([0-9]+).html$" />
    <action type="Rewrite" url="{R:1}/forum.php?gid={R:2}" />
    </rule>
    其它的你说的我都改了,但还是会出"插件不存在或已关闭"
    请帮我看看是不是伪静态写错了。

  17. 威客百科

    威客百科游客 回复Ta 方案挺好的

  18. 教师工资

    教师工资游客 回复Ta 好久没用discuz了

  19. 巴中论坛

    巴中论坛游客 回复Ta 我想手机版如何伪静态呢?

  20. 奥威时手表加盟

    奥威时手表加盟游客 回复Ta 第一次用DZ论坛程序建站

  21. 威客

    威客游客 回复Ta 现在遇到了一个问题 说我的邮件设置有问题 不知道怎么解决

  22. 民间偏方

    民间偏方游客 回复Ta 3.2虽然出来了,可一点特色也没有。

发表评论(友情提示:可直接按Ctrl+Enter提交评论)
来宾的头像
访客