helper seo.php,Discuz首页为门户时SEO的关键词和描述出现”首页”浅析

SEO对于一个网站来说是尤其重要的,这个道理我想不管大网站还是小网站都是懂的,除非是BAT级别的网站或者某些不依赖搜索引擎的网站,在目前这种网站极其少。说实话,很多小网站的运营者花的时间最多的就是花在SEO上面了,可见大家对SEO的重视。但实际上很多运营者做SEO,更多的时间花在网站的标签是否有问题?外链发的是否已经足够了?要是TDK信息出现了差错,哪怕是工具问题带来的差错都是不可以容忍的。而昨天就有人发给我一条这样的信息:

b47969bf4f951dc53fb659390feb6e62.png

这是什么意思呢?意思就是说他的这个网站的描述和关键词部分的内容都变了,变成了“首页”,首先想到的就是说网站是不是被攻击了之类的。因为他说这是帮他做SEO外包的人反馈的,要他检查网站。如果去网站查看前端源代码就是下面的样子。

a55d8c0e32baa684997102d7b9e087db.png

看上图确实是有问题的,但难道真的是网站被篡改了么?如果是篡改了这个攻击者也是闲着蛋疼,啥事不做,就把你的keywords和description该成一个“首页”。其实这个问题被很多实用Discuz的站长问过。如果说Discuz是对的的话,那么出现这样的问题就根本不算是问题。

好了,下面就来简单分析下吧。首先访问的是门户的首页,脚本名为portal.php,mod为index,下面就没有其他的路由参数了。我们可以直接找到对应的module。位于source/module/portal下的portal_index.php。里面几乎没什么代码,代码就是判断TDK信息以及模板输出的。

b5083019410648dd9d08e30fef4f1466.png

上面关于TDK的意思,大概就是先获取整个的seo设置信息,这些数据通过get_seosetting方法获取,完了如果对应的变量为空则分别赋值为$_G['setting']['navs'][1]['navname'],而这个值正好就是后台设置的导航名称,所以有的时候出现的是“首页”,有的时候出现的是“门户”。

而这个get_seosetting方法位于function_core.php中,但是看到这文件中的方法就知道,这里只是一个“中转站”。

2368b2e50df6c7add1cb4ca4b74105f3.png

但上面告诉了我们,“真正”的get_seosetting方法包含在helper_seo这个类当中,那么我们就找到helper_seo这个类吧。看类命名就可以迅速找到文件所在路径(这体现了命名规范的重要性)。就在source/class/helper下的helper_seo.php这个文件中,找到对应方法。

b48fcf61d9e4e9a9b1cec4fdc9f64863.png

看到这里就真相大白了,也就是说你看到的和搜索引擎看到的是不一样的,实际上IS_ROBOT就代表搜索引擎,而$_G['adminid'] == 1就代表管理员管理组啦,这也是为什么有的人提问说登录后就能看到正常的TDK信息了。所以说,这是Discuz本身就是这样写的程序,当然了,最粗暴的方式就是把这个两个if的&&后面的约束条件删除掉就可以了。

最后,我想说的是,做SEO不是借助几个工具查查就叫做分析,比如上面的工具是不可靠的,最基本的它作为SEO工具应该模拟搜索引擎去访问抓取网站,而不是模拟一个普通访客。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值