源码论坛公告:本站是一个交流学习建站资源的社区论坛,旨在交流学习源码脚本等资源技术,欢迎大家投稿发言! 【点击此处将锦尚放在桌面

源码论坛,商业源码下载,尽在锦尚中国商业源码论坛

 找回密码
 会员注册

QQ登录

只需一步,快速开始

查看: 7497|回复: 0
打印 上一主题 下一主题

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

[复制链接]

1169

主题

1557

帖子

8820

金币

超级版主

Rank: 8Rank: 8

积分
19323
跳转到指定楼层
1#
发表于 2020-2-27 10:39:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
第一次用DZ论坛程序建站,在Discuz! X3.2后台的SEO设置里开启URL 静态化后发现论坛版块和帖子内容页面都成功伪静态了,但是但是论坛版块上层分区还是“forum.php?gid=”这样的动态URL。原来Discuz默认是不支持也无法通过后台设置分区伪静态的,这也算是DZ的一个小BUG吧。不过想要实现论坛分区伪静态也不是没有办法,那就是修改源文件了,下面详细记录下Discuz! X3.2 分区版块伪静态设置方法。

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

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

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


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

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


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

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

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

  1. <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程序,以便我修正该教程文章。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

锦尚中国源码论坛

聚合标签|锦尚中国,为中国网站设计添动力 ( 鲁ICP备09033200号 ) |网站地图

GMT+8, 2024-7-27 08:05 , Processed in 0.171901 second(s), 28 queries .

带宽由 锦尚数据 提供 专业的数据中心

© 锦尚中国源码论坛 52jscn Inc. 非法入侵必将受到法律制裁 法律顾问:IT法律网 & 褚福省律师 锦尚爱心 版权申诉 版权与免责声明