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

discuz 搜索引擎优化

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

761

主题

775

帖子

3万

积分

董事

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

积分
32836
发表于 19-4-26 21:16:07 | 显示全部楼层 |阅读模式      紫钻仅向指定用户开放  
                  版权所有。转载请以链接形式注明作者、原始出处和本声明。谢谢。又做了些修改,格式太不好弄了,如果感兴趣访问原文吧discuz的URL形式复杂,动态,打印页、精华参数,列表页参数变化,跳转形式,Archiver,再加上静态化形式,形成了多个副本内容,搜索引擎对也其按各自的技术选择了不同的首选URL,因此各种形式的URL好坏也意见不一。使用301和robots可以解决一些,再加上新属性canonicaltag,可能将各种形式URL的权重转到指定的首选版本上。内部搜索引擎优化工作可以说完成了很重要的一项。(还要兼顾百度不支持canonical)。8 ^4 I  o$ |. `$ F/ e
  一,使用伪静态。做好三点实现discuz网址规范化. ?( k/ N, J" H/ D5 K" h. x  G
  开启伪静态,同时再做(1,2特别适合新站,老站宜保持原态 ):/ T1 c$ q, _2 T* i: r+ ?' N
  1.在robots.txt中禁止所有动态地址"Disallow: /*.php";
2 ]0 b( s$ J4 H! V0 t& `  2.禁用Archiver,理由见Archiver优化的是非。% n$ r' |  x9 d5 X5 u3 \6 w8 _. V4 d% K
  3.修改forumdisplay.php文件,将$extra =  rawurlencode("page=$page$forumdisplayadd");改为$extra =  rawurlencode("page=1$forumdisplayadd");
2 G9 u7 z( ~; v# j  解释:帖子的URL形式是thread-(tid)-(page)-(forumdisplaypage).html,最后一节表示此帖在列表页的第几页。所以当帖子越来越多,这个帖就会由第一页到第二页...,它的URL就会不断的变化。解决办法就是它都变成1。不足就是当从这个帖子返回列表页时,只能返回到第一页了。- i7 r' I' v; n5 H1 [! {; N( _
  这样处理站内链接形式单一、规范而且通畅,不影响收录。如果不想禁止动态形式,或有别人链接了不规范形式,也可以做下面的修改。
# V, A$ E& v& A. E1 C! b( Z6 @  二,动态URL形式。要给非标准URL页面加canonical tag,指向权威网页+ y/ l( T3 Z# N! a2 C" c
  可以从这里了解canonical tag指定权威链接的功能,它能像301转移所有权重(除了不跳转)。下面以说明如何为discuz 7.0 添加link  tag。
8 d% o/ Y  r2 V9 X+ p  注意:修改是将canonical指向viewthread.php?tid=888形式的,要指向静态形式先看下第三大点。
9 }/ b) g: x* ]9 M: m  1.给viewthread.php加link rel="canonical": l% g7 L* `- Y' L1 I6 X1 X5 z5 ]$ Q
  修改viewthread.php文件,在$page =  max($page,1);上面(程序调用包含文件结束),加一行$extrahead.='0 {  [4 ^0 q8 \% Z% M
  2.给打印页(有printable参数的)加canonical tag
. D. [/ m- A1 A" l3 O% Y5 r  修改打印页模板templatesdefaultviewthread_printable.htm文件,在部分加 $extrahead 。1 p; S* T( G% ?9 t
  3.给redirect.php形式的页子加权威链接8 z+ c) I( z3 j! j0 L; Z' E+ @
  这个程序其实对参数处理后,调用的就是viewthread.php,所以自然就有link rel="canonical"了,百度不支持,也可按  三第3小点301。/ u  I( U. ^5 c  Q1 _; N. ]& q/ Y
  4.为archiver页加link canonical标签
+ j5 z1 S$ [' T6 _7 ?; }  1)修archiver/index.php文件:在global $boardurl, $_DCACHE, $charset, $navtitle,  $headerbanner, $headernav;行下加一行:global $extrahead;
# j( L7 k. |/ [* w  在< http-equiv="Content-Type" c />( S' H; u# q* k4 b5 o3 c3 }
  行下加一行:$extrahead 。) _5 x- z9 D1 B& T" U
  2)修必archiverincludethread.inc.php:此文件中有两个showheader();,在第二个的上面加一行:$extrahead  .='
1 w5 [2 }/ g; x1 i& Y1 G  至此帖子所有形式的URL(动态、打印页、redirect.php、静态和archiver)都有link  rel="canonical"标签,指定viewthread.php?tid=888 这种形式为标准版本,权重和收录都会转到它。
- J) }& f' O- x0 D3 U! Z; l8 ~  对于列表页,因形式简单,且archiver列表页未与正常列表一一对应,没有做修改。
# t8 g+ C4 ?* ~) R% `4 z  三,既做伪静态又加link canonical到静态地址的说明$ [, T" h. O. z3 y
  我认为做好上面两大点中的一点就可以了,但如果以伪静态形式为主,还做第二点,请注意下面:6 ^4 E; c4 @; b0 }# V# l/ `, y0 q8 x
  1.将第二点中所有 $extrahead .='';即改成以thread-3-1-1.html这种静态形式为首选版本。5 @0 g, Q# G$ j4 `- @* w
  2.将archiver内容页最下的完整版本链接改为静态形式
4 Y" }+ {8 w3 a  修改archiver/include/thread.inc.php,将  "viewthread.php?tid=$tid"替换为"thread-{$tid}-1-1.html"
5 z8 i1 @; L! F' W8 I  3.为redirect.php页做301跳转到静态形式URL4 `: m, i0 s; Y
  修改文件,使用php代码实现301跳转,把require_once DISCUZ_ROOT.'./viewthread.php';替换为
; W7 f5 m/ U/ q: \5 n+ C1 P, u  header("HTTP/1.1 301 Moved Permanently"); header( "Location:  thread-{$tid}-1-1.html" );
, n% ~" u* p, c2 z  Y' N  文件中共有四个地方要替换,但在7.0的前台只看到了lastpost这个形式。
0 C; Y4 Z+ g0 n  其中2.3其实都会有link canonical,但百度不支持,直接到标准形式为好! v- J8 V# J7 [2 J6 c9 O4 J

/ O. P7 y# i# d) u4 S- z            

1

主题

3

帖子

12

积分

1°伸手党

Rank: 2

积分
12
发表于 5 天前 | 显示全部楼层         
路过,支持一下啦
回复

使用道具 举报

网站简介

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