最新公告
  • 欢迎您光临站长源码网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • WordPress riprov2实现演示地址外链加密和伪静态跳转代码

    正文概述 管理员   2024-09-02   13

    在阅读了一篇关于WordPress网站外链转内链的优化代码的博客后,自己也去折腾了下riprov2演示地址的外链Base64 加密转内链跳转 ,因此今天特意跟大家分享下。

    外链转内链地址Base64加密地址的详细步骤

    1、将以下跳转代码保存为 index.php,然后在网站根目录新建一个 go 文件夹,并把 index.php 上传到 go 文件夹中:

    <?php
        if(strlen($_SERVER['REQUEST_URI']) > 255 ||
            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=="febdays" ) {
           $t_url="https://www.zhann.cn";
        } elseif($t_url=="news") {
           $t_url="https://www.zhann.cn/news";
        }
        //数据处理
        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=''.$t_url;
                    $title='页面加载中,请稍候...';
                } else {
                    $url = 'http://'.$_SERVER['HTTP_HOST'];
                    $title='参数错误,正在返回首页...';
                }
            }
        } else {
            $title = '参数缺失,正在返回首页...';
            $url = 'http://'.$_SERVER['HTTP_HOST'];
        }
        ?>
        <HTML>
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <meta name="robots" content="noindex, nofollow" />
        <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)) {
                 location.href="http://" + MyHOST;
            }
            location.href="<?php echo $url;?>";
        }
        //延时 1S 跳转,可自行修改延时时间
        setTimeout(link_jump, 1000);
        //延时 50S 关闭跳转页面,用于文件下载后不会关闭跳转页的问题
        setTimeout(function(){window.opener=null;window.close();}, 50000);
        </script>
        <title><?php echo $title;?></title>
        <style type="text/css">
        body{background:#555}.loading{-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:50%;margin-left:-100px;margin-top:2px;color:#000;letter-spacing:1px;font-size:20px;font-family:Arial}.spinner{position:absolute;top:45%;left:50%;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>
        <div class="loading">
          <div class="spinner-wrapper">
            <span class="spinner-text">页面加载中,请稍候...</span>
            <span class="spinner"></span>
          </div>
        </div>
        </body>
        </html>
    

    其中第12行代码中自定义的一些特别外链,这个功能特别好,因为我们每个站点都或多或少有一些特殊的外链,如果也变成 Base64 加密地址就不好看了,所以此处我们可以多添加几个比较有个性化的外链跳转地址。

    2、将以下代码添加到我们的 Nginx 服务器相应配置文件中的 location / { 前面,保存配置文件后平滑重启 Nginx 即可:

    
    rewrite ^/goto/(.*)$ /go/?url=$1 last;
    

    Apache服务器修改根目录.htaccess文件,添加以下代码

    RewriteRule ^goto/(.*)$ /go.php?url=$1 [L]
    

    3、替换文章原外链跳转地址格式变更为新的外链格式(/goto/ base64 加密串),我自己的目录为/wp-content/themes/ripro-v2/single/single-cat-store.php 114行,请根据自己的需求来。

    <?php
    global $post, $current_user;
            $user_id     = $current_user->ID; //用户ID
            $post_id     = $post->ID; //文章ID
            $click_nonce = wp_create_nonce('rizhuti_click_' . $post_id);
    
    $cao_info1 = get_post_meta($post_id, 'cao_info', true);
            if ($cao_demourl = get_post_meta($post_id, 'cao_demourl', true)) {
                $cao_info1[] = array('title' => esc_html__('downurl', 'ripro-v2'), 'desc' => $cao_demourl);
            }
    
            if ($cao_info1) {
                foreach ($cao_info1 as $key => $value) {
                    if($value['title']=='downurl'){
                     echo '<a href="/goto/'.base64_encode($value['desc']).'" class="fast m_b2" target="_blank" rel="nofollow"><i class="fa fa-desktop"></i>演示地址<span>若无法打开演示,请联系我们!</span></a><a href="https://wpa.qq.com/msgrd?v=3&uin=4084380&site=qq&menu=yes" class="normal" target="_blank" rel="nofollow"><i class="fa fa-qq"></i>技术支持<span>遇到问题?请联系客服反馈!</span></a>';   
                    }
                    
                }
            }
    ?>
    

    至此,演示地址外链均变成新的跳转格式了。

    
    


    站长源码网 » WordPress riprov2实现演示地址外链加密和伪静态跳转代码

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    支付宝支付
    余额支付
    ×
    微信扫码支付 0 元