Discuz!论坛分区版块(gid)伪静态处理的方法
在做完Discuz!论坛全站伪静态(Discuz!论坛全站伪静态方法)之后,古惑仔网发现一个问题,就是分区版块的链接并没有被静态化,还是下面这种格式:/forum.php?gid=1,古惑仔网想要实现伪静态为:/gid-1.html。需要进一步处理,其实很简单,两步即可:
一、修改模板文件 template/default/forum/discuz.htm,找到代码(大概在第345行):
forum.php?gid=$cat[fid]
修改为:
gid-$cat[fid].html
修改版块页模板文件 source/module/forum/forum_forumdisplay.php,找到代码(大概在第19行):
Location: forum.php?gid=$_G[fid]
修改为:
Location: gid-$_G[fid].html
找到代码 (大概在第75行):
forum.php?gid='.$forum_up['fid'].'
修改为:
gid-'.$forum_up['fid'].'.html
找到代码 (大概在第84行):
forum.php?gid='.$forum_top['fid'].'
修改为:
gid-'.$forum_top['fid'].'.html
修改帖子模板文件 :打开 source/module/forum/forum_viewthread.php 文件,找到代码(大概在第131和137行共两处):
?'forum.php?gid='.$fup :
修改为:
?'gid-'.$fup.'.html':
修改发帖页模板文件 :打开 source/module/forum/forum_post.php 文件,找到代码(大概在第125和131行共两处):
?'forum.php?gid='.$fup :
修改为:
?'gid-'.$fup.'.html':
二、把以下伪静态规则加入到我们做好的伪静态规则中,IIS服务器添加:
RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^gid-(+)\.html$ forum.php?gid=$1%1
Apache服务器添加:
RewriteRule ^(.*)/gid-(+)\.html(\?(.*))*$ $1/forum\.php\?gid=$2
最后要注意的是,这段伪静态规则一样要加在栏目规则的伪静态规则上面,Apache的是:
RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^forum-(\w+)-(+)\.html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1
IIS的是:
RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^forum-(\w+)-(+)\.html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1
附完整的Discuz!伪静态规则文件(Apache服务器中的.htaccess文件)上面有网址。
版权声明:本站【趣百科】文章素材来源于网络或者用户投稿,未经许可不得用于商用,如转载保留本文链接:https://www.qubaik.com/life/108711.html