搜索

搜索

在线
客服

在线客服服务时间: 9:00-20:00

选择下列客服马上在线沟通:

快速
发帖

客服
热线

021-50343443
7*8小时客服服务热线

关注
微信

关注微信公众号
顶部
开启左侧

[discuz教程] discuz x3.2主题和标签分类伪静态教程

[复制链接]
Freeman 发表于 2016-9-12 08:50:25 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
 
Discuz X3.2默认是禁止搜索引擎访问 misc.php 文件的,因此 tag 不会被收录。
我们可以将 tag 网址伪静态化,这样不仅使 tag 网址看上去更规范美观,还使 tag 页面可以被百度收录。
第一步,复制根目录下的 misc.php 文件为 misc_tag.php 文件,删除其中的
  1. $discuz->reject_robot();
复制代码
(否则搜索引擎无法访问)。

第二步,增加伪静态规则(以Nginx为例)。
rewrite ^([^\.]*)/tag.html$ $1/misc_tag.php?mod=tag last;  
rewrite ^([^\.]*)/tag-([1-9][0-9]*)-1\.html$ $1/misc_tag.php?mod=tag&id=$2 last;
rewrite ^([^\.]*)/tag-([1-9][0-9]*)-([2-9]|[1-9][0-9]+)\.html$ $1/misc_tag.php?mod=tag&id=$2&type=thread&page=$3 last;

注意:必须添加在
  1. rewrite ^([^\.]*)/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ $1/plugin.php?id=$2:$3 last;
复制代码
此行之前的任意位置。添加后需要 重载 或 关闭后再启动 Nginx后生效(仅直接重启无效)。
该规则使 tag标签页面 支持以网址 tag-标签编号-标签页数.html 访问指定标签页面。

第三步,修改Discuz程序,使 tag链接 由原有的动态链接换为伪静态链接。

1、打开 template/default/tag/tagitem.htm 模板文件
  1. <a class="xi2" href="misc.php?mod=tag&id=$id&type=thread">{lang more}...</a>
复制代码
修改为:
  1. <a class="xi2" href="tag-$id-2.html">{lang more}...</a>
复制代码

  1. <a class="xi2" href="misc.php?mod=tag&id=$id&type=blog">{lang more}...</a>
复制代码
修改为:
  1. <a href="misc.php?mod=tag&id=$id&type=blog" class="xi2" style="font-weight: bold;">{lang more}...</a>
复制代码

  1. <a href="misc.php?mod=tag">{lang tag}</a>
复制代码
修改为:
  1. <a href="tag.html">{lang tag}</a>
复制代码

  1. <a href="misc.php?mod=tag&id=$id">$tagname</a>
复制代码
修改为:
  1. <a href="tag-$id-1.html">$tagname</a>
复制代码

  1. <!--{loop $threadlist $thread}-->
复制代码
修改为
  1. {eval $tiaoshu = 0}<!--{loop $threadlist $thread}-->{eval $tiaoshu ++;}
复制代码

将第一个
  1. <!--{if empty($showtype)}-->
复制代码

修改为
  1. <!--{if empty($showtype) && $tiaoshu >= 20}-->
复制代码

  1. action="misc.php?mod=tag"
复制代码
修改为
  1. action="tag.html"
复制代码

2、修改翻页按钮。
打开 source/module/misc/misc_tag.php 文件,
  1. $multipage = multi($count, $tpp, $page, "misc.php?mod=tag&id=$tag[tagid]&type=thread");
复制代码
修改为
  1. $multipage = multi_guide($count, $tpp, $page, "tag-$tag[tagid]");
复制代码

打开 source/function/function_core 文件,在
  1. function simplepage($num, $perpage, $curpage, $mpurl) {
复制代码
前面增加一段(定义multi_guide):
function multi_guide($num, $perpage, $curpage, $mpurl, $maxpages = 0, $page = 10, $autogoto = FALSE, $simple = FALSE, $jsfunc = FALSE) {  return $num > $perpage ? helper_page_guide::multi($num, $perpage, $curpage, $mpurl, $maxpages, $page, $autogoto, $simple, $jsfunc) : ''; }

进入 source/class/helper/ 目录,将 helper_page.php 复制一份命名为 helper_page_guide.php 。
并依次修改 helper_page_guide.php 文件中的以下部分:

将 helper_page 修改为 helper_page_guide (共两处,其中文件头注释中的那处无关紧要);
  1. $pagevar = 'page=';
复制代码
修改为
  1. $pagevar = '-';
复制代码

  1. $jsurl = $mpurl.(strpos($mpurl, '{page}') !== false ? '\'.replace(\'{page}\', this.value == 1 ? \'\' : this.value)': $pagevar.'\'+this.value;').'; doane(event);';
复制代码
修改为
  1. $jsurl = substr($mpurl, 0, -1).(strpos($mpurl, '{page}') !== false ? '\'.replace(\'{page}\', this.value == 1 ? \'\' : this.value)': $pagevar.'\'+this.value').'+\'.html\'; doane(event);';
复制代码
(此项操作使手动输入页码翻页时链接静态化)

  1. return $mpurl.$separator.$pagevar.$page;
复制代码
修改为
  1. return substr($mpurl, 0, -1).$separator.$pagevar.$page.'.html';
复制代码
(翻页页码链接静态化)

3、修改title。
打开 source/module/misc/misc_tag.php 文件,
  1. $navtitle = $tagname ? $taglang.' - '.$tagname : $taglang;
复制代码
修改为:
  1. $navtitle = $tagname ? $tagname.$title_page.' - '.$taglang : $taglang;
复制代码

并在其前面加入一行:
  1. if($_GET['page']) { $title_page = '(第'.$_GET['page'].'页)'; }
复制代码

4、使tag首页列出的tag链接和搜索按钮伪静态化。
打开 template/default/tag/tag.htm 模板文件,
  1. <a href="misc.php?mod=tag&id=$tag[tagid]" title="$tag[tagname]" target="_blank" class="xi2">$tag[tagname]</a>
复制代码
修改为:
  1. <a href="tag-$tag[tagid]-1.html" target="_blank" class="xi2">$tag[tagname]</a>
复制代码

  1. action="misc.php?mod=tag"
复制代码
修改为
  1. action="tag.html"
复制代码

5、修改帖子页面上的tag链接,使其静态化。
打开 template/default/forum/viewthread_node_body.htm 模板文件(部分模板可能在 viewthread_node.htm 文件中,自行查找),
  1. misc.php?mod=tag&id=$var[0]
复制代码
(部分模板可能不只一处,搜索查找确认),修改为
  1. tag-{echo intval($var[0])}-1.html
复制代码

6、修改标签不存在时返回标签首页的链接。
打开 source/language/tag/lang_template.php 文件,
  1. <a href="misc.php?mod=tag" title="返回标签首页">返回标签首页</a>
复制代码
修改为
  1. <a href="tag.html" style="font-weight: bold;">返回标签首页</a>
复制代码

第四步(可选),附加优化。
1、打开 template/default/tag/tagitem.htm 模板文件,
删除
  1. <h1 class="mt"><img class="vm" src="{IMGDIR}/tag.gif" alt="tag" /> {lang tag}: $tagname</h1>
复制代码
可以去掉列表上方的“标签:XXX”字样(重复,影响美观)。

  1. <th><h2>{lang related_thread}</h2></th>
复制代码
修改为
  1. <th><h2>包含关键字 $tagname 的{lang related_thread}</h2></th>
复制代码
可以将“相关帖子”替换为“包含关键字 XXX 的相关帖子”。

  1. <h2>{lang related_blog}</h2>
复制代码
修改为
  1. <h2>包含关键字 $tagname 的{lang related_blog}</h2>
复制代码
可以将“相关日志”替换为“包含关键字 XXX 的相关日志”。

  1. <p class="emp">{lang no_content}</p>
复制代码
(共两处)替换为
  1. <p class="emp" style="padding-left:30px;">{lang no_content}</p>
复制代码
可将“没有相关内容”字样右移30px,使之与存在的内容标题对齐。

  1. <p class="emp">{lang empty_tags}</p>
复制代码
替换为
  1. <p>{lang empty_tags}</p>
复制代码

2、SEO,优化TAG页面上的内容列表。自行修改 template/default/tag/tagitem.htm 模板文件,给作者链接加上 nofollow ,去除查看数、最后回帖作者、最后回帖时间上的链接。

3、让不存在的TAG页面返回404状态码。修改 source/module/misc/misc_tag.php 文件,
  1. include_once template('tag/tagitem');
复制代码
前加入以下代码:
  1. if($_GET['id'] && (!$tagname || !$threadlist) && $type != 'blog') {header("HTTP/1.1 404 Not Found");header("Status: 404 Not Found");}
复制代码

出售提现 接单赚钱 积分转换 推广 充值 赞助VIP 新手帮助
 

精彩评论1

正序浏览
zero_abr 发表于 2021-8-14 21:14:37 | 显示全部楼层
 
真是难得给力的帖子啊。
出售提现 接单赚钱 积分转换 推广 充值 赞助VIP 新手帮助
回复 支持 反对

使用道具 举报

 
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 淡定 神作 路过 感恩
您需要登录后才可以回帖 登录 | 现在注册

本版积分规则


1关注

22粉丝

1940帖子

排行榜
作者专栏

精品资源出售,数据快速变现

项目交易合作,保障双方权益

COLOR旗下综合交易服务平台

  • 公众号

    官方微信公众号,欢迎您的加入。

    扫码关注
  • 微信客服

    微信客服,有问题请找我。

    扫码联系
  • QQ客服
广告图片

自由者CG期待您来加入

Copyright   ©2014-现在  自由者CGPowered by©Discuz!技术支持:迪恩网络    ( 沪ICP备11008872号 )