Discuz!X系列常见的几种BUG,终极修复方案

IT资讯
IT资讯
IT资讯
899
文章
137
评论
2019-06-1904:31:08
评论
1,152 3361字

问题1:Discuz!X开启伪静态规则之后,论坛分区版块伪静态之后提示插件不存在或已关闭……

解决方法:

一、修改模板文件 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' :

 

 

最后,只要在网站根目录的.htaccess规则当中添加以下一条就行了:

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

 

 

**切记,要加到

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

之上,才行!!!

 

 

 

 

 

问题2,:Discuz!X帖子内容页的tag标签在开启伪静态规则之后,点击tag标签提示插件不存在或已关闭……

解决方法:

1. 修改帖子内tag标签链接,使其伪静态。
打开template/default(模板风格)/forum/viewthread_node_body.htm,查找:

<a title="$var[1]" href="misc.php?mod=tag&id=$var[0]" target="_blank">$var[1]</a>

替换为:

<a title="$var[1]" href="tag-$var[0].html" target="_blank">$var[1]</a>

 

 

2. 修改tag页,使各个标签链接伪静态。
打开template/default/tag/tag.htm,查找:

<a href="misc.php?mod=tag&id=$tag[tagid]" title="$tag[tagname]" target="_blank" class="xi2">$tag[tagname]</a>

替换为:

<a href="tag-$tag[tagid].html" title="$tag[tagname]" target="_blank" class="xi2">$tag[tagname]</a>

 

3. 修改tag列表页当前位置,使其路径链接伪静态。
打开template/default/tag/tagitem.htm,查找

<a href="misc.php?mod=tag">{lang tag}</a>

替换为:

<a href="tag.html">{lang tag}</a>

再查找:

<a href="misc.php?mod=tag&id=$id">$tagname</a>

替换为:

<a href="tag-$id.html">$tagname</a>

 

4. 让搜索引擎蜘蛛可爬。
修改根目录下robort.txt,删除:

Disallow: /misc.php
Disallow: /*?mod=misc*

 

修改根目录下misc.php文件,注释:

//$discuz->reject_robot();
        5. 添加伪静态规则。
linux系统(.htaccess或httpd.conf)伪静态规则:(本站使用的)

RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^tag-(.+)\.html$ misc.php?mod=tag&id=$1
RewriteCond %{QUERY_STRING} ^(.*)
RewriteRule ^tag\.html$ misc.php?mod=tag

 

6.伪静态规则的最后加上一条:

RewriteRule ^([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ plugin.php?id=$1:$2&%1

 

 

 

 

问题3:Discuz!X在开启伪静态之后,模块的外部数据调用的链接还是动态的,如何修改成伪靜态链接呢?

解决方法:

找到论坛目录下source\class\block\forum\block_thread.php

打开编辑

搜索

'url' => 'forum.php?mod=viewthread&tid='.$data['tid'].($viewmod ? '&from=portal' : ''),

修改为

'url' => 'thread-'.$data['tid'].'-1-1.html',

这里的伪静态根据自身设置调整!

 

 

  • Copyright ©  PC在线云端  版权所有.
  • 转载请务必保留本文链接:http://www.gaofumei.net/web/discuzx_web/8230.html
广告位出租 云服务器香港节点2折起,高速回流,免备案,海外6大节点共享
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: