1949啦网--小小 痛苦,是因为能力和欲望不匹配造成的

Emlog全站实现go跳转

搞了几天.给站点加上了go跳转。据说可以防止页面权重分散..
        主要加在了游客评论地址上。百度了一圈发现没啥系统的教程,所以你懂的。
        首先搞定go文件
        创建一个go.php打开(最好你不要用记事本)将以下代码复制进去

放到根目录或者新建文件夹“go”把go.php改成index.php,放进去。


<?php  /**   * 带有来路验证和跳转提示功能的跳转页面   */  // 请将这里的网址改为自己的(顶级)域名地址  $myDomain = 'xtboke.cb';  // 这里用正则提取 $_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="robots" content="noindex, nofollow" />  <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}  @-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: #d68300;}  .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;}  .btn-green {color: #fff;background-color: #238aca;border: 1px solid #238aca;}  .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>该网站不属于《期权记's blog》跳转站点,我们无法确认该网页是否安全,它可能包含未知的安全隐患。</p>          <span class="btn btn-green" onclick="go();">继续访问</span>          <span class="btn" onclick="window.close();">关闭网页</span>      </div>      <script>      function go() {          window.location.href = window.location.href;      }      </script>      <?php } else { ?>      <div id="circle"></div>      <div id="circle1"></div>      <p id="loading-text">页面加载中,请稍候...</p>      <?php } ?>  </body>  </html>


这段代码能够防止他人恶意利用你的go跳转, 比如说这个链接你直接点击打开,和复制到浏览器打开是不一样的

http://qiquanji.com/go.php?url=https://www.baidu.com/

如果是本站的直接复制打开就不会提示
然后修改模板
        打开模板的 module.php 

搜索  <a href="'.$comment['url'].'" target="_blank">  将其替换为:  <a href="/go/?url='.$comment['url'].'" target="_blank">  或者  <a href="/go.php?url='.$comment['url'].'" target="_blank">  根据你go文件的位置


好了评论页面搞定,至于友链部分可以统一在友链前面加上http://qiquanji.com/go.php?url= 

但是我发现这样会使友链的favicon图标获取失败,(强迫症的我)我就想加上代码试试。

//widget:链接(已经修改过的侧边栏友链)  function widget_link($title){  	global $CACHE;   	$link_cache = $CACHE->readCache('link');      //if (!blog_tool_ishome()) return;#只在首页显示友链去掉双斜杠注释即可  	?>  	<div class="widget widget_links"><span class="icon"><i class="fa fa-link"></i></span> <h3> 友情链接</h3><ul>  	<?php foreach($link_cache as $value): ?>  	<li><a href="<?php echo "/go/?url=".$value['url']; ?>" title="<?php echo $value['des']; ?>" target="_blank"><i class="fa fa-link fa-fw"></i><?php echo $value['link']; ?></a></li>    	<?php endforeach; ?></ul>   </div>      <?php  //widget:pages_links(已经修改过的友链页面)  function pages_links(){  	global $CACHE;   	$link_cache = $CACHE->readCache('link');      //if (!blog_tool_ishome()) return;#只在首页显示友链去掉双斜杠注释即可      foreach($link_cache as $value): ?>  	<li><a href="<?php echo "/go/?url=".$value['url'];?>" title="<?php echo $value['des']; ?>" target="_blank" rel="nofollow"><?php echo $value['link']; ?></a></li>  	<?php endforeach;}?>  <?php


然后我发现竟然还是获取不了favicon图标。F12是这样的


<img src="http://api.byi.pw/favicon/?url=l=http:www.baidu.com">


我心里就我操我操了多了个“l=”是什么意思?使用的这个代码获取favicon图标

然后我就充分发挥了蓝翔的精神,你不就是多了吗?老子删!(以下纯小白做法.dalao路过就好)


将上面  <img src="http://api.byi.pw/favicon/?url='+imgSrc+'">  代码改为  <img src="http://api.byi.pw/favicon/?ur'+imgSrc+'">


完美解决

教程根据http://zhebk.cn/post/83改写

本站声明:网站内容来源于网络,如有侵权,请联系我们https://www.qiquanji.com,我们将及时处理。

微信扫码关注

更新实时通知

作者:xialibing 分类:网络教程 浏览: