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>
- Redis+TwemProxy(nutcracker)集群方案部署记录
- 金融科技新常态,未来开启拼“硬实力”阶段
- Mono 3 的默认Gc是Sgen
- Linux下Redis主从复制以及SSDB主主复制环境部署记录
- 单元测试同时支持 NUnit/MSTest
- log4net快速上手
- MySQL高可用方案-PXC环境部署记录
- Redis主从复制下的工作原理梳理
- Linux系统下常用的数据备份方法
- K2 的Workspace 遭遇400 RequestLength 错误修复
- 从零开始学人工智能-Python·决策树(三)·节点
- .net程序员使用Oracle新手上路指南
- python的函数(二):作用域
- 在win2008 r2中安装windows phone 7开发工具
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- 解决Android studio 3.6.1 出现Cause: unable to find valid certification path to requested target 报错的问题
- 使用kotlin实现MVP的方式(简单好用)
- Android Studio 3.6中新的视图绑定工具ViewBinding 用法详解
- android studio更新gradle错误构建项目失败的解决方法
- Android Studio使用Kotlin时,修改代码后运行不生效的解决方法
- 服务端开发人员必备网页调试工具:Postman
- 树莓派使用DHT11模块读取温湿度
- 用Go 写了个负载均衡器
- 给MacBook写一个更好的Windows触摸板驱动程序
- 小程序多图上传服务器接收返回数据操作
- WordPress屏蔽某个国家地方的IP访问
- Linux的php-fpm优化教程/php-fpm进程占用内存大和不释放内存问题
- 基于DNSmasq写了个WEB界面(开源)
- Android Studio3.6新特性之视图绑定ViewBinding使用指南
- Android recyclerView横条指示器实现淘宝菜单模块