Discuz!3.4论坛分区伪静态版块(gid)伪静态处理的方法

在做完Discuz!论坛全站伪静态(Discuz!论坛全站伪静态方法)之后,余斗发现一个问题,就是分区版块的链接并没有被静态化,还是下面这种格式:/forum.php?gid=1,余斗想要实现伪静态为:/gid-1.html。需要进一步处理,其实很简单,两步即可:
一、修改模板文件 template/default/forum/discuz.htm,找到代码(大概在第345行):

  1. forum.php?gid=$cat[fid]

复制代码

修改为

  1. gid-$cat[fid].html

复制代码

修改版块页模板文件 source/module/forum/forum_forumdisplay.php,找到代码(大概在第19行):

  1. Location: forum.php?gid=$_G[fid]

复制代码

修改为

  1. Location: gid-$_G[fid].html

复制代码

找到代码 (大概在第75行):

  1. forum.php?gid=’.$forum_up[‘fid’].’

复制代码

修改为

  1. gid-‘.$forum_up[‘fid’].’.html

复制代码

找到代码 (大概在第84行):

  1. forum.php?gid=’.$forum_top[‘fid’].’

复制代码

修改为

  1. gid-‘.$forum_top[‘fid’].’.html

复制代码

修改帖子模板文件 :打开 source/module/forum/forum_viewthread.php 文件,找到代码(大概在第131和137行共两处):

  1. ? ‘forum.php?gid=’.$fup :

复制代码

修改为

  1. ? ‘gid-‘.$fup.’.html’ :

复制代码

修改发帖页模板文件 :打开 source/module/forum/forum_post.php 文件,找到代码(大概在第125和131行共两处):

  1. ? ‘forum.php?gid=’.$fup :

复制代码

修改为

  1. ? ‘gid-‘.$fup.’.html’ :

复制代码

二、把以下伪静态规则加入到我们做好的伪静态规则中,IIS服务器添加:

  1. RewriteCond %{QUERY_STRING} ^(.*)$
  2. RewriteRule ^gid-([0-9]+)\.html$ forum.php?gid=$1%1

复制代码

Apache服务器添加:

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

复制代码

最后要注意的是,这段伪静态规则一样要加在栏目规则的伪静态规则上面,Apache的是:

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

复制代码

iis是

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

复制代码

Nginx

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

复制代码





https://www.yudouyudou.com/jiaochengheji/wangzhanjianshe/752.html

温馨提示:本文最后更新于2022-09-12 12:07:02,某些文章具有时效性,若有错误或已失效,请在下方留言或联系丁塔克博客
© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论