利用GO页面代码防止网站权重流失

食用方法:

  1. https://mkblog.cn/go/?url=www.baidu.com

现修复了这些问题的一部分。部分浏览器因为自身就屏蔽了关闭页面的js函数,所以还是会照成无法关闭页面的情况。(尽力了...)

至于 https 无法获取 HTTP_REFERER 的情况,现在我的站点都没有加 https ,不好测试,百度了一下也找不到好的解决方案,暂时还没有解决方案……

更新后的代码如下

  1. <?php  
  2.   
  3.   
  4. // 请将这里的网址改为自己的(顶级)域名地址  
  5. $myDomain = '';  
  6.   
  7. // 这里用正则提取 $_SERVER["QUERY_STRING"] 而不是直接 get url  
  8. // 是因为如果链接中自身带有 GET 参数则会导致获取不完整  
  9. preg_match('/url=(.*)/i', $_SERVER["QUERY_STRING"], $jumpUrl);   
  10.   
  11. // 如果没获取到跳转链接,直接跳回首页  
  12. if(!isset($jumpUrl[1])) {  
  13.     header("location:/");  
  14.     exit();  
  15. }  
  16.   
  17. $jumpUrl = $jumpUrl[1];  
  18.   
  19. // 判断是否包含 http:// 头,如果没有则加上  
  20. preg_match('/(http|https):\/\//', $jumpUrl, $matches);      
  21.   
  22. $url = $matches$jumpUrl: 'http://'. $jumpUrl;  
  23.   
  24.   
  25. // 判断网址是否完整  
  26. preg_match('/[\w-]*\.[\w-]*/i', $url$matche);      
  27.   
  28. // 是否需要给出跳转提示  
  29. $echoTips = false;  
  30.   
  31. if($matche){  
  32.     // 如果是本站的链接,不展示动画直接跳转  
  33.     if(isMyDomain($url$myDomain)) {  
  34.         header("location:{$url}");  
  35.         exit();    // 后续操作不再执行  
  36.     }  
  37.       
  38.     $title = '页面加载中,请稍候...';  
  39.     $fromUrl = isset($_SERVER["HTTP_REFERER"])? $_SERVER["HTTP_REFERER"]: ''// 获取来源url  
  40.       
  41.     // 如果来源和跳转后的地址都不是本站,那么就要给出提示  
  42.     if(!isMyDomain($fromUrl$myDomain)) {  
  43.         $echoTips = true;  
  44.     }  
  45. else {    // 网址参数不完整  
  46.     $url = '/';  
  47.     $title = '参数错误,正在返回首页...';  
  48. }  
  49.   
  50.   
  51.   
  52. function isMyDomain($domain$my) {  
  53.     preg_match('/([^\?]*)/i', $domain$match);  
  54.     if(isset($match[1])) $domain = $match[1];  
  55.     preg_match('/([\w-]*\.[\w-]*)\/.*/i', $domain.'/', $match);  
  56.     if(isset($match[1]) && $match[1] == $myreturn true;  
  57.     return false;  
  58. }  
  59.   
  60. ?>  
  61. <html>  
  62. <head>  
  63. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  64. <meta http-equiv="X-UA-Compatible" content="IE=edge">  
  65. <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">  
  66. <?php  
  67. if($echoTips) {  
  68.     echo '<title>跳转提示</title>';  
  69. else {  
  70.     echo '<meta http-equiv="refresh" content="0;url='.$url.'">';  
  71.     echo '<title>'.$title.'</title>';  
  72. }  
  73. ?>  
  74. <style>  
  75. body{background:#fff;font-family:Microsoft Yahei;-webkit-animation:fadeIn 1s linear;animation:fadeIn 1s linear}  
  76. @-webkit-keyframes fadeIn{from{opacity:0}  
  77. to{opacity:1}  
  78. }@keyframes fadeIn{from{opacity:0}  
  79. to{opacity:1}  
  80. }#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}  
  81. #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}  
  82. @-webkit-keyframes spinPulse{0%{-webkit-transform:rotate(160deg);opacity:0;box-shadow:0 0 1px #505050}  
  83. 50%{-webkit-transform:rotate(145deg);opacity:1}  
  84. 100%{-webkit-transform:rotate(-320deg);opacity:0}  
  85. }@-webkit-keyframes spinoffPulse{0%{-webkit-transform:rotate(0deg)}  
  86. 100%{-webkit-transform:rotate(360deg)}  
  87. }#loading-text{position:fixed;left:110px;bottom:35px;color:#736D6D}  
  88. @media screen and (max-width:600px){#circle,#circle1{left:0;right:0;top:0;bottom:0}  
  89. #circle{margin:120px auto}  
  90. #circle1{margin:130px auto}  
  91. #loading-text{display:block;text-align:center;margin-top:220px;position:static;margin-left:10px}  
  92. }  
  93. .warning{max-width: 500px;margin: 20px auto;}  
  94. .wtitle {font-size: 22px;color: #d68300;}  
  95. .wurl {overflow: hidden;text-overflow: ellipsis;white-space: nowrap;color: #827777;}  
  96. .btn {display: inline-block;line-height: 20px;cursor: pointer;border: 1px solid #A9A6A6;padding: 6px 10px;font-size: 14px;text-decoration: none;}  
  97. .btn-green {color: #fff;background-color: #238aca;border: 1px solid #238aca;}  
  98. .btn:hover {background-color: #A9A6A6;border: 1px solid #A9A6A6;color: #fff;}  
  99. </style>  
  100. </head>  
  101. <body>  
  102.     <?php if($echoTips) { ?>  
  103.     <div class="warning">  
  104.         <p class="wtitle">您将要访问:</p>  
  105.         <p class="wurl" title="<?php echo $url;?>"><?php echo $url;?></p>  
  106.         <p>该网站不属于熊猫汽水博客,我们无法确认该网页是否安全,它可能包含未知的安全隐患。</p>  
  107.         <a class="btn btn-green" href="<?php echo $url;?>" rel="nofollow">继续访问</a>  
  108.         <span class="btn" onclick="closePage()">关闭网页</span>  
  109.     </div>  
  110.     <script>  
  111.     function closePage() {  
  112.         // 通用窗口关闭  
  113.         window.opener=null;  
  114.         window.open('','_self');  
  115.         window.close();  
  116.         // 微信浏览器关闭  
  117.         WeixinJSBridge.call('closeWindow');  
  118.     }  
  119.     </script>  
  120.     <?php } else { ?>  
  121.     <div id="circle"></div>  
  122.     <div id="circle1"></div>  
  123.     <p id="loading-text">页面加载中,请稍候...</p>  
  124.     <?php } ?>  
  125. </body>  
  126. </html>  
原文来自孟坤博客
熊猫博客打赏


*打赏支持:支付宝/微信/QQ,感谢赏口饭吃
转载此文章须经作者同意,并请附上出处及本页链接。
如有侵权,请联系本站删除。
除特殊说明,原创内容采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可

标签: 无

发表评论:

选择表情