余斗在把论坛做伪静态处理之后(参考:Discuz!论坛分区版块(gid)伪静态处理的方法、Discuz!论坛伪静态的实现方法),发现一个小问题,就是面包屑导航的链接没有伪静态,仍然是动态的链接,这个细节虽然影响不大,但是毕竟既然做了伪静态就要全局都搞定,在查找一番之后,余斗找到解决方法。
因为面包屑导航主要出现在首页、版块页、帖子页和发帖页,所以我们只需要修改这三个页面的控制文件就好了。
一、首先确定自己的分区版块的伪静态规则,余斗在后台启用伪静态后,在.htaccess文件中写的是这样的伪静态规则:
RewriteRule ^(.*)/gid-([0-9]+)\.html(\?(.*))*$ $1/forum\.php\?gid=$2
IIS可以这样写:
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^gid-([0-9]+)\.html$ forum.php?gid=$1%1
接下来,余斗就以本人的伪静态规则来做修改。
二、修改页面链接:
·首页,打开/template/default/forum/discuz.htm模板文件,查找代码(大概在第345行):
forum.php?gid=$cat[fid]
修改为:
gid-$cat[fid].html
·版块页,打开/source/module/forum/forum_forumdisplay.php文件,查找代码(大概在第19行、第75行、第84行):
Location: forum.php?gid=$_G[fid]
修改为:
Location: gid-$_G[fid].html
将代码
forum.php?gid='.$forum_up['fid'].'
修改为:
gid-'.$forum_up['fid'].'.html
将代码
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 :
修改为:
? 'forum-'.$fup.'.html' :
全部修改完成后,到后台刷新缓存,再看下,是不是所有的面包屑导航中的分区版块链接也伪静态了!
套路很深,不支持下载!