腾讯云网站解决方案帮您轻松应对建站成本高/网络不稳等常见问题

discuz 搜索引擎优化

1
回复
1856
查看
[复制链接]

765

主题

779

帖子

3万

积分

董事

Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72

积分
33025
发表于 19-4-26 21:16:07 | 显示全部楼层 |阅读模式      紫钻仅向指定用户开放  
                  版权所有。转载请以链接形式注明作者、原始出处和本声明。谢谢。又做了些修改,格式太不好弄了,如果感兴趣访问原文吧discuz的URL形式复杂,动态,打印页、精华参数,列表页参数变化,跳转形式,Archiver,再加上静态化形式,形成了多个副本内容,搜索引擎对也其按各自的技术选择了不同的首选URL,因此各种形式的URL好坏也意见不一。使用301和robots可以解决一些,再加上新属性canonicaltag,可能将各种形式URL的权重转到指定的首选版本上。内部搜索引擎优化工作可以说完成了很重要的一项。(还要兼顾百度不支持canonical)。0 n* _# r3 h* u. [/ `
  一,使用伪静态。做好三点实现discuz网址规范化7 {" N6 c9 {% [8 B  P3 B/ h8 g7 J
  开启伪静态,同时再做(1,2特别适合新站,老站宜保持原态 ):; E% `6 W! p5 g" ^( X; B
  1.在robots.txt中禁止所有动态地址"Disallow: /*.php";) j- _' M& n# W
  2.禁用Archiver,理由见Archiver优化的是非。* ~' V+ g7 A7 m, `+ a7 B
  3.修改forumdisplay.php文件,将$extra =  rawurlencode("page=$page$forumdisplayadd");改为$extra =  rawurlencode("page=1$forumdisplayadd");. J$ E; k( d$ p" |
  解释:帖子的URL形式是thread-(tid)-(page)-(forumdisplaypage).html,最后一节表示此帖在列表页的第几页。所以当帖子越来越多,这个帖就会由第一页到第二页...,它的URL就会不断的变化。解决办法就是它都变成1。不足就是当从这个帖子返回列表页时,只能返回到第一页了。
% y. l' p6 `+ ]3 Y. H6 h6 ?: u0 |  这样处理站内链接形式单一、规范而且通畅,不影响收录。如果不想禁止动态形式,或有别人链接了不规范形式,也可以做下面的修改。
' x/ L" [# X! y# v+ c  二,动态URL形式。要给非标准URL页面加canonical tag,指向权威网页
2 J' F1 @- J3 L; r7 U8 ?% o! ?  可以从这里了解canonical tag指定权威链接的功能,它能像301转移所有权重(除了不跳转)。下面以说明如何为discuz 7.0 添加link  tag。
6 ^6 s* y; l5 q" A  注意:修改是将canonical指向viewthread.php?tid=888形式的,要指向静态形式先看下第三大点。# p: i$ e, Z1 o* z( U
  1.给viewthread.php加link rel="canonical"
8 v) u: u& G" u0 a0 Q. W  修改viewthread.php文件,在$page =  max($page,1);上面(程序调用包含文件结束),加一行$extrahead.='- G! {9 \6 \, c; v2 T
  2.给打印页(有printable参数的)加canonical tag2 L: S3 _0 A; T9 J$ S* B- R$ x3 [% F
  修改打印页模板templatesdefaultviewthread_printable.htm文件,在部分加 $extrahead 。( o3 g: }" [- W& g$ R4 s& R3 \
  3.给redirect.php形式的页子加权威链接
" H  ~- i2 w# _7 ]  这个程序其实对参数处理后,调用的就是viewthread.php,所以自然就有link rel="canonical"了,百度不支持,也可按  三第3小点301。
9 }. r, q: ?& S0 \* D  M  4.为archiver页加link canonical标签1 I+ ^- @0 `% P1 d$ q: b
  1)修archiver/index.php文件:在global $boardurl, $_DCACHE, $charset, $navtitle,  $headerbanner, $headernav;行下加一行:global $extrahead;
( E( G& H: N# u5 b, y/ }  在< http-equiv="Content-Type" c />
" v- J/ v  N2 Z& K: ]8 l- q  行下加一行:$extrahead 。  m' x" S+ J6 E3 g! o
  2)修必archiverincludethread.inc.php:此文件中有两个showheader();,在第二个的上面加一行:$extrahead  .='
$ m2 X* e4 d; ?% U8 \  至此帖子所有形式的URL(动态、打印页、redirect.php、静态和archiver)都有link  rel="canonical"标签,指定viewthread.php?tid=888 这种形式为标准版本,权重和收录都会转到它。
% m/ x+ Z4 Y( K8 e4 V  对于列表页,因形式简单,且archiver列表页未与正常列表一一对应,没有做修改。
# X/ g, h1 d: f( a  三,既做伪静态又加link canonical到静态地址的说明
& U6 c5 a8 b/ J/ h  我认为做好上面两大点中的一点就可以了,但如果以伪静态形式为主,还做第二点,请注意下面:( B* X% f( y8 l: c4 t
  1.将第二点中所有 $extrahead .='';即改成以thread-3-1-1.html这种静态形式为首选版本。
0 x/ E( ~1 {4 \2 r8 V6 Z1 u8 Z  2.将archiver内容页最下的完整版本链接改为静态形式* D* S7 Z% W( u+ y* p/ ]; \' |6 ~; C
  修改archiver/include/thread.inc.php,将  "viewthread.php?tid=$tid"替换为"thread-{$tid}-1-1.html"
- B3 O8 p9 O" B! m6 W: v  3.为redirect.php页做301跳转到静态形式URL
* J& t4 z% n% u. n" m" l  修改文件,使用php代码实现301跳转,把require_once DISCUZ_ROOT.'./viewthread.php';替换为
) {1 V* A& ?; Y; \  header("HTTP/1.1 301 Moved Permanently"); header( "Location:  thread-{$tid}-1-1.html" );5 I4 E8 x' M# {8 D, j
  文件中共有四个地方要替换,但在7.0的前台只看到了lastpost这个形式。5 N" n/ F9 T" S
  其中2.3其实都会有link canonical,但百度不支持,直接到标准形式为好
8 k# Q- ^- |* \ ! j& i: Y# k- h: ^+ o5 R
            

1

主题

8

帖子

12

积分

1°伸手党

Rank: 2

积分
12
发表于 19-11-7 00:00:12 | 显示全部楼层         
路过,支持一下啦
回复

使用道具 举报

网站简介

球球发,是一家 Discuz! 商业插件、风格模板、网站源码、 Discuz!运营维护技术等于一体的交流分享网站,全站95%的资源都是免费下载,对于资源我们是每天更新,每个亲测资源最新最全---球球发(如果我们有侵犯了您权益的资源请联系我们删除