2024年2月更新版WordPress建站go外链跳转php代码及教程

今天,突然发现go外链跳转出现问题,不能正常方法,紧急修复更新如下,请参考使用。

第一步:创建外链跳转代码

创建外链跳转代码必不可少,这一步我们可以通过两种方式实现:

1、在WordPress站点的根目录下新建一个go.php文件。

2、在WordPress站点根目录下新建一个go文件夹,然后在文件夹内新建index.php文件。

下面的跳转代码加入了QQ邮箱跳转页面样式,非常精美。php 文件内容如下(不论是用上面的两种方式中的那一种,都使用下面的代码创建php文件):

<?php
session_start();
if(strlen($_SERVER['REQUEST_URI']) > 384 ||
strpos($_SERVER['REQUEST_URI'], "eval(") ||
strpos($_SERVER['REQUEST_URI'], "base64")) {
@header("HTTP/1.1 414 Request-URI Too Long");
@header("Status: 414 Request-URI Too Long");
@header("Connection: Close");
@exit;
}
//通过QUERY_STRING取得完整的传入数据,然后取得url=之后的所有值,兼容性更好
$t_url = preg_replace('/^.*url=(.*)$/i','$1',$_SERVER["QUERY_STRING"]);


//此处可以自定义一些特别的外链,不需要可以删除以下5行
if($t_url=="juyun" ) {
$t_url="https://juyun.top";
} elseif($t_url=="www.juyun") {
$t_url="https://www.juyun.top";
}

//数据处理
if(!empty($t_url)) {
//判断取值是否加密
if ($t_url == base64_encode(base64_decode($t_url))) {
$t_url = base64_decode($t_url);
}
//对取值进行网址校验和判断
preg_match('/^(http|https|thunder|qqdl|ed2k|Flashget|qbrowser):\/\//i',$t_url,$matches);
if($matches){
$url=$t_url;
$title='页面加载中,请稍候...';
} else {
preg_match('/\./i',$t_url,$matche);
if($matche){
$url='http://'.$t_url;
$title='页面加载中,请稍候...';
} else {
$url = 'http://'.$_SERVER['HTTP_HOST'];
$title='参数错误,正在返回首页...';
}
}
} else {
$title = '参数缺失,正在返回首页...';
$url = 'http://'.$_SERVER['HTTP_HOST'];
}

// 判断来源和跳转后的地址是不是来源于本站

// 2023.11.10 本次更新了$fromUrl的获取及赋值 更新代码start
if(isset($_SERVER["HTTP_REFERER"])){
    $fromUrl = $_SERVER["HTTP_REFERER"];
    }else{
        $get_randomParam= $_GET['source'];
        $from_randomParam = $_SESSION["randomParam"];
        if($get_randomParam == $from_randomParam) {
            $fromUrl = "juyun.top";
        }else{
            $fromUrl = "";
        }
    }
    
//更新代码结束,注意在最前面加上session_start,同时更新function.php中外链跳转部分代码

// $fromUrl = isset($_SERVER["HTTP_REFERER"])? $_SERVER["HTTP_REFERER"]: ''; // 获取来源url 
$myDomain = 'juyun.top';  // 请将这里的网址改为自己的(顶级)域名地址  
$echoTips = false;  
if(false !==strpos($fromUrl,$myDomain)){
    $echoTips = true;
}

/** 
 * 判断是不是自己的域名 
 * @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 name="robots" content="noindex, nofollow" >
<meta name="referrer" content="always" >
<noscript><meta http-equiv="refresh" content="1;url='<?php echo $url;?>';"></noscript>
<script>
function link_jump()
{

//禁止其他网站使用我们的跳转页面
var MyHOST = new RegExp("<?php echo $_SERVER['HTTP_HOST']; ?>");
if (MyHOST.test(document.referrer) || "<?php echo $echoTips; ?>" == true) {
    location.href="<?php echo $url;?>";
}else{
    location.href="https://" + MyHOST;
}
}

//延时1S跳转,可自行修改延时时间
setTimeout(link_jump, 50);

//延时50S关闭跳转页面,用于文件下载后不会关闭跳转页的问题
setTimeout(function(){window.opener=null;window.close();}, 50000);

</script>
<title><?php echo $title;?></title>
<style type="text/css">
body{background:#555;text-align:center}.loading{margin:0 auto;-webkit-animation:fadein 2s;-moz-animation:fadein 2s;-o-animation:fadein 2s;animation:fadein 2s}@-moz-keyframes fadein{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadein{from{opacity:0}to{opacity:1}}@-o-keyframes fadein{from{opacity:0}to{opacity:1}}@keyframes fadein{from{opacity:0}to{opacity:1}}.spinner-wrapper{position:absolute;top:0;left:0;z-index:300;height:100%;min-width:100%;min-height:100%;background:rgba(255,255,255,0.93)}.spinner-text{position:absolute;top:45%;left:40%;margin-left:-100px;margin-top:2px;color:#000;letter-spacing:1px;font-size:18px;font-family:Arial}.spinner{position:absolute;top:45%;left:40%;display:block;margin-left:-160px;width:1px;height:1px;border:20px solid rgba(255,0,0,1);-webkit-border-radius:50px;-moz-border-radius:50px;border-radius:50px;border-left-color:transparent;border-right-color:transparent;-webkit-animation:spin 1.5s infinite;-moz-animation:spin 1.5s infinite;animation:spin 1.5s infinite}@-webkit-keyframes spin{0%,100%{-webkit-transform:rotate(0deg) scale(1)}50%{-webkit-transform:rotate(720deg) scale(0.6)}}@-moz-keyframes spin{0%,100%{-moz-transform:rotate(0deg) scale(1)}50%{-moz-transform:rotate(720deg) scale(0.6)}}@-o-keyframes spin{0%,100%{-o-transform:rotate(0deg) scale(1)}50%{-o-transform:rotate(720deg) scale(0.6)}}@keyframes spin{0%,100%{transform:rotate(0deg) scale(1)}50%{transform:rotate(720deg) scale(0.6)}}
</style>
</head>
<body>
<?php if($echoTips ==  false ) { ?>  
    <div class="loading">
      <div class="spinner-wrapper">
          <span class="spinner-text">未通过安全校验,正在前往您选择的【聚云网】官网,请稍候...</span>
          <span class="spinner"></span>
       </div>
    </div>
    <script>  
     function closePage() {  
        // 通用窗口关闭  
        window.opener=null;  
        window.open('','_self');  
        window.close();  
        // 微信浏览器关闭  
        WeixinJSBridge.call('closeWindow');  
     }  
    </script>  
    <?php } else { ?>  
     <div class="loading">
          <div class="spinner-wrapper">
             <span class="spinner-text">已通过安全校验,正在前往您选择的【云服务器】官网,请稍候...</span>
             <span class="spinner"></span>
         </div>
     </div>
    <?php } 
?>  
</body>
</html>

第二步:在functions.php进行跳转代码应用

打开主题文件夹下的functions.php,加入以下代码:

//给外部链接加上跳转
add_filter('the_content', 'the_content_nofollow', 999);
function the_content_nofollow($content)
{
    preg_match_all('/<a(.*?)href="(.*?)"(.*?)>/', $content, $matches);
    if ($matches) {
        foreach ($matches[2] as $val) {
            if (strpos($val, '://') !== false && strpos($val, home_url()) === false && !preg_match('/\.(jpg|jepg|png|ico|bmp|gif|tiff)/i', $val)) {
                global $_SESSION;
                if (!isset($_SESSION['randomParam'])) {
                    $_SESSION['randomParam'] = uniqid();
                }
                $randomParam = $_SESSION['randomParam'];
                $content = str_replace("href=\"$val\"", "href=\"" . home_url() . "/go/?source=$randomParam&amp;url=$val\" ", $content);
            }
        }
    }
    return $content;
}

如果采用了方法1,在网站根目录创建了一个 go.php 文件,则把 str_replace(“href=\”$val\””, “href=\””.home_url().”/go/?url=$val\” “,$content); 中的 go/? 改为 go.php? 即可。

第三步、禁止百度蜘蛛抓取收录

修改Robots文件,在里面加入这句 Disallow: /go/ ,屏蔽各大搜索引擎的蜘蛛抓取go文件夹下的文件。

本站所有内容,如有版权、侵权等问题,请及时联系本站做删除。发布者:聚云网,转载请注明出处:https://www.juyun.top/6908.html

(1)
打赏 微信扫一扫 微信扫一扫
云大君云大君
上一篇 2023年11月4日
下一篇 2019年2月25日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

问答社区 在线客服
咨询电话

iphone 咨询热线:13001069197

服务时间:上午 9:00 至晚上 21:00

联系我们

qq 技术:109033286

qq 运维:3423710838

email 邮箱:drhxxkj@163.com

2022072119482661 808026766

分享本页
返回顶部
上云攻略全知道

企业上云,购买云服务器攻略帮您节省上云成本,价值千元 的上云攻略,让您省到就是赚到!

查看详情