SEO丨PHP外链跳转防止权重转移

简单概括:

301跳转具有转移权重的无耻作用。

当我们的网站分享出某些比较出名,有用的网站时,除了加Nofollow标签,还能使用什么方法来避免权重转移呢?

PHP骚操作:

将以下代码扔进一个为go.php的PHP文件中,

外链形式改为如下:24bp.cn变成xxx.com/go.php?url=24bp.cn

放入网站根目录即可实现!

<?php /** * 带有来路验证和跳转提示功能的跳转页面 * @auth 西顾博客 * @authUrl http://24bp.cn * @data 2018/5.5 * @url https://24bp.cn */ // 请将这里的网址改为自己的(顶级)域名地址 $myDomain = 'uixsj.cn'; // 这里用正则提取 $_SERVER["QUERY_STRING"] 而不是直接 get url // 是因为如果链接中自身带有 GET 参数则会导致获取不完整 preg_match('/url=(.*)/i', $_SERVER["QUERY_STRING"], $jumpUrl); // 如果没获取到跳转链接,直接跳回首页 if(!isset($jumpUrl[1])) { header("location:/"); exit(); } $jumpUrl = $jumpUrl[1]; // 判断是否包含 http:// 头,如果没有则加上 preg_match('/(http|https):\/\//', $jumpUrl, $matches); $url = $matches? $jumpUrl: 'http://'. $jumpUrl; // 判断网址是否完整 preg_match('/[\w-]*\.[\w-]*/i', $url, $matche); // 是否需要给出跳转提示 $echoTips = false; if($matche){ // 如果是本站的链接,不展示动画直接跳转 if(isMyDomain($url, $myDomain)) { header("location:{$url}"); exit(); // 后续操作不再执行 } $title = '页面加载中,请稍候...'; $fromUrl = isset($_SERVER["HTTP_REFERER"])? $_SERVER["HTTP_REFERER"]: ''; // 获取来源url // 如果来源和跳转后的地址都不是本站,那么就要给出提示 if(!isMyDomain($fromUrl, $myDomain)) { $echoTips = true; } } else { // 网址参数不完整 $url = '/'; $title = '参数错误,正在返回首页...'; } /** * 判断是不是自己的域名 * @param $domain 要进行判断的域名 * @param $my 自己的域名 * @return 对比结果 */ function isMyDomain($domain, $my) { preg_match('/([^\?]*)/i', $domain, $match); if(isset($match[1])) $domain = $match[1]; preg_match('/([\w-]*\.[\w-]*)\/.*/i', $domain.'/', $match); if(isset($match[1]) && $match[1] == $my) return true; return false; } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"><?php if($echoTips) { echo '<title>跳转提示</title>'; } else { echo '<meta http-equiv="refresh" content="0;url='.$url.'">'; echo '<title>'.$title.'</title>'; } ?><style> body{background:#fff;font-family:Microsoft Yahei;-webkit-animation:fadeIn 1s linear;animation:fadeIn 1s linear;padding-top:3em} @-webkit-keyframes fadeIn{from{opacity:0} to{opacity:1} }@keyframes fadeIn{from{opacity:0} to{opacity:1} }#circle{background-color:rgba(0,0,0,0);border:5px solid rgba(0,183,229,0.9);opacity:.9;border-right:5px solid rgba(0,0,0,0);border-left:5px solid rgba(0,0,0,0);border-radius:50px;box-shadow:0 0 35px#2187e7;width:50px;height:50px;margin:0 auto;position:fixed;left:30px;bottom:30px;-moz-animation:spinPulse 1s infinite ease-in-out;-webkit-animation:spinPulse 1s infinite ease-in-out;-o-animation:spinPulse 1s infinite ease-in-out;-ms-animation:spinPulse 1s infinite ease-in-out} #circle1{background-color:rgba(0,0,0,0);border:5px solid rgba(0,183,229,0.9);opacity:.9;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-radius:50px;box-shadow:0 0 15px#2187e7;width:30px;height:30px;margin:0 auto;position:fixed;left:40px;bottom:40px;-moz-animation:spinoffPulse 1s infinite linear;-webkit-animation:spinoffPulse 1s infinite linear;-o-animation:spinoffPulse 1s infinite linear;-ms-animation:spinoffPulse 1s infinite linear} @-webkit-keyframes spinPulse{0%{-webkit-transform:rotate(160deg);opacity:0;box-shadow:0 0 1px #505050} 50%{-webkit-transform:rotate(145deg);opacity:1} 100%{-webkit-transform:rotate(-320deg);opacity:0} }@-webkit-keyframes spinoffPulse{0%{-webkit-transform:rotate(0deg)} 100%{-webkit-transform:rotate(360deg)} }#loading-text{position:fixed;left:110px;bottom:35px;color:#736D6D} @media screen and (max-width:600px){#circle,#circle1{left:0;right:0;top:0;bottom:0} #circle{margin:120px auto} #circle1{margin:130px auto} #loading-text{display:block;text-align:center;margin-top:220px;position:static;margin-left:10px} } .warning{max-width: 500px;margin: 20px auto;} .wtitle {font-size: 22px;color: #00bcd4;} .wurl {overflow: hidden;text-overflow: ellipsis;white-space: nowrap;color: #827777;} .btn {display: inline-block;line-height: 20px;cursor: pointer;border: 1px solid #A9A6A6;padding: 6px 10px;font-size: 14px;text-decoration: none;border-radius:20px;} .btn-blue {color: #fff;background-color: #00bcd4;border: 1px solid #00bcd4;} .btn:hover {background-color: #A9A6A6;border: 1px solid #A9A6A6;color: #fff;} </style> </head> <body> <?php if($echoTips) { ?> <div class="warning"> <p class="wtitle">您将要访问:</p> <p class="wurl"title="<?php echo $url;?>"><?php echo $url;?></p> <p>该网站不属于西顾博客,我们无法确认该网页是否安全,它可能包含未知的安全隐患。</p> <a class="btn btn-blue" href="<?php echo $url;?>" rel="nofollow">继续访问</a> <spanclass="btn" onclick="closePage()">关闭网页</span> </div> <script> functionclosePage() { // 通用窗口关闭 window.opener=null; window.open('','_self'); window.close(); // 微信浏览器关闭 WeixinJSBridge.call('closeWindow'); } </script><?php } else { ?> <div id="circle"></div> <div id="circle1"></div> <pid="loading-text">页面加载中,请稍候...</p> <?php } ?> </body> </html>

原文链接:https://24bp.cn/1082.html

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏涤生的博客

长连接和心跳的那些事儿

心跳和长连接在一起介绍的原因是,心跳能够给长连接提供保活功能,能够检测长连接是否正常(这里所说的保活不能简单的理解为保证活着,具体来说应该是一旦链路死了,不可用...

913
来自专栏数据和云

针对Sharding DB的单点故障,合理构建HA架构

作者简介 ? 何剑敏 Oracle ACS华南区售后团队,首席技术工程师。多年从事第一线的数据库运维工作,有丰富项目经验、维护经验和调优经验,专注于数据库的整...

3338
来自专栏程序员宝库

从放弃迅雷到自己开发下载工具

前言 在这个网络带宽飞速增长的年代,下载文件要充分利用好网速就得用到下载工具,比如迅雷、IDM。然而贫穷限制了下载速度,这两个下载软件不花钱毫无体验可言。本...

53610
来自专栏好好学java的技术栈

SpringBoot 整合 RabbitMQ

RabbitMQ 是由 Erlang 语言编写的实现了高级消息队列协议(AMQP)的开源消息代理软件(也可称为面向消息的中间件)。其支持 Windows、Lin...

1052
来自专栏Laoqi's Linux运维专列

Kubernetes 1.8.6 集群部署–钉钉报警(十二)

1113
来自专栏LeeCen

ShareSDK第三方分享与登录遇到的问题

982
来自专栏大魏分享(微信公众号:david-share)

DevOps工具链大全 on Openshift

本文作者为陈沙克,原文题目为:OpenShift的DevOps工具链,大魏已获得授权转载。

992
来自专栏刘卓夫的专栏

云中漫步,做个公众号方便生活、取悦自己

随着云服务的日趋完善,有了好的idea,可以方便的基于云服务进行快速尝试,而无需考虑机器、网络等基础设施问题。文本将介绍如何基于腾讯云的云服务,快速、低成本地搭...

2.3K3
来自专栏惨绿少年

HTTP服务简介

第1章 HTTP服务介绍 1.1 简述用户访网站流程 a 进行域名信息的DNS解析 dig +trace 获得www.oldboyedu.com  ip地址信息...

2180
来自专栏FreeBuf

我们来“劫持”个GitHub自定义域名玩吧!

作为一个国内外项目都不怎么挖的我,比较喜欢拿自己正在使用的服务入手挖洞,毕竟拥有需求又了解业务才能长期跟进,更好的去发现各种流程上出现的毛病。

963

扫码关注云+社区