导航菜单

技术分享

如何在discuz x3增加标签功能,如何在nginx环境开启伪静态

本文优雅草科技伊凡写,不代表优雅草科技立场仅代表个人观点,谢谢支持
discuz x3.4 没有标签功能了,如果添加标签功能,如何开启伪静态
由于X3.4版本后 dz官方的调整,云平台的弃用,导致论坛原有的tag自动获取功能失效 ,大家可以安装这个插件来拥有自动获得标签的功能。
因为SEO的需要,要做tags聚合到一个页面,做到伪静态。
例如:
misc.php?mod=tag >>> /tag/  
misc.php?mod=tag&id=1 >>> /tag/1.html

首先添加伪静态规则,我是apache服务器,在此添加apache规则 RewriteRule ^(.*)/tag/(.+)\.html*$ $1/misc.php\?mod=tag&id=$2 RewriteRule ^(.*)/tag/\*$ $1/misc.php\?mod=tag

  然后修改相关的模板文件
打开template/default(模板风格)/forum/viewthread_node_body.htm,查找:misc.php?mod=tag&id=$var[0]
替换为:tag/$var[0].html

打开template/default/tag/tagitem.htm,查找:misc.php?mod=tag  替换为:/tag/  
该文件继续查找:misc.php?mod=tag&id=$id  替换为:tag/$id.html



这是一篇csdn博主发的
https://blog.csdn.net/asevb02442/article/details/101103429

他介绍了如何修改页面上面让标签变成伪静态链接,因为默认不管是插件还是曾经的标签功能是动态地址, apache环境下,那么nginx下如何写呢
首先观察我们的标签页面的地址:
https://bbs.youyacao.com/misc.php?mod=tag&id=58



对比一个 规则
RewriteRule ^([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ plugin.php?id=$1:$2&%1
rewrite ^([^\.]*)/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ $1/plugin.php?id=$2:$3 last;
这位博主写的apache是这样
RewriteRule ^(.*)/tag/(.+)\.html*$ $1/misc.php\?mod=tag&id=$2 RewriteRule ^(.*)/tag/\*$ $1/misc.php\?mod=tag

那么很简单的 同理可得:
rewrite ^(.*)/tag/(.+)\.html*$ $1/misc.php\?mod=tag&id=$2 last; rewrite ^(.*)/tag/\*$ $1/misc.php\?mod=tag last;
好的 我们测试一下


完美!
由于X3.4版本后 dz官方的调整,云平台的弃用,导致论坛原有的tag自动获取功能失效 ,大家可以安装这个插件来拥有自动获得标签的功能。

可以购买这位作者的正版插件:

https://addon.dismall.com/plugins/addon_seo_tagrelatekw.html 本文优雅草科技伊凡写,不代表优雅草科技立场仅代表个人观点,谢谢支持。