wordpress如何添加外部链接跳转到仿QQ邮箱中转页面

方法不复杂,个人进行了修改,主要是提供了一个仿QQ邮箱外链跳转的页面,如下图:

制作跳转页面

首先新建一个page-goto.php文件(UTF-8无bom格式),加入以下代码:(注意修改注释说明的部分为你对应的信息)

<?php
if(strlen($_SERVER['REQUEST_URI']) > 255 ||
strpos($_SERVER['REQUEST_URI'], "eval(") ||
strpos($_SERVER['REQUEST_URI'], "base64")) {
@header("HTTPS/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=="zhangge" ) {
$t_url="https://zhang.ge";
} elseif($t_url=="baidu") {
$t_url="https://www.baidu.com/";
}
//数据处理
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='https://'.$t_url;
$title='页面加载中,请稍候...';
} else {
$url = 'https://'.$_SERVER['HTTP_HOST'];
$title='参数错误,正在返回首页...';
}
}
} else {
$title = '参数缺失,正在返回首页...';
$url = 'https://'.$_SERVER['HTTP_HOST'];
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<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;
}
}
//延时 1S 跳转,可自行修改延时时间
setTimeout(link_jump, 1000);
//延时 50S 关闭跳转页面,用于文件下载后不会关闭跳转页的问题
setTimeout(function(){window.opener=null;window.close();}, 50000);
</script>
<title><?php echo $title;?></title>
<style>body{margin:0;padding:0 30px;background:#fff;font-size:12px}img{border:none}a{text-decoration:none;cursor:pointer;outline:0}a:hover{text-decoration:underline}a,a:link,a:visited{color:#1e5494}a.btn_blue:focus{border-color:#93d4fc;box-shadow:0 0 5px #60caff}a.btn_blue{display:inline-block;padding:6px 25px;margin:0;font-size:14px;font-weight:700;text-align:center;border-radius:3px;border:1px solid #0d659b;color:#fff;color:#fff!important;background-color:#238aca;background:-moz-linear-gradient(top,#238aca,#0074bc);background:-webkit-linear-gradient(top,#238aca,#0074bc);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#238aca', endColorstr='#0074bc');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#238aca', endColorstr='#0074bc')"}a.btn_blue:hover{text-decoration:none;background-color:#238aca;background:-moz-linear-gradient(top,#2a96d8,#0169a9);background:-webkit-linear-gradient(top,#2a96d8,#0169a9);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#2a96d8', endColorstr='#0169a9');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#2a96d8', endColorstr='#0169a9')"}a.btn_blue:active{background-color:#238aca;background:-moz-linear-gradient(top,#0074bc,#238aca);background:-webkit-linear-gradient(top,#0074bc,#238aca);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0074bc', endColorstr='#238aca');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#0074bc', endColorstr='#238aca')";outline:0}.remind_block{overflow:hidden}.remind_block .remind_content{overflow:hidden}.remind_block .remind_title{margin-bottom:10px;padding-top:3px;font-weight:700;font-size:20px;font-family:"Microsoft YaHei","lucida Grande",Verdana}.remind_block .remind_detail{line-height:1.5;font-size:16px;color:#535353}.warning .remind_title{color:#16a085}.container{max-width:640px;margin:0 auto;padding-top:25px}.header{margin-bottom:5px}.footer{margin-top:18px;text-align:center;color:#a0a0a0;font-size:10px}.content{border:1px solid #bbb;box-shadow:0 0 3px #d4d4d4}.c-container{padding:30px}.c-footer{padding:10px 15px;background:#f1f1f1;border-top:1px solid #bbb;overflow:hidden}.c-footer-a1,.c-footer-a2{float:left}.c-footer-a2{margin:8px 0 0 15px}.safety-url{margin-bottom:15px;padding-bottom:15px;border-bottom:1px solid #dfdfdf;word-wrap:break-word;word-break:break-all}</style>
</head>
<body>
<div class="container">
<div class="header">
<img width="150" height="35" src="https://img.4g.lc/wp-content/uploads/2020/03/1sylogo.png">
</div>
<div class="content">
<div class="c-container warning">
<div id="remind_block" class="remind_block" style="height: 260px;">
<div class="remind_content">
<div class="remind_title">
您将要访问
</div>
<div class="remind_detail">
<div class="safety-url">
<?php echo $url;?>
</div>
<span style="color:#CC0000;font-weight:800;">温馨提示:</span><br/>该网页不属于 WWW.4G.LC 世界旅程,我们无法确认该网页是否安全,它可能包含未知的安全隐患,请注意保护好个人信息!
</div>
</div>
</div>
</div>
</div>
<div class="c-footer">
<a href="<?php echo $url;?>" rel="nofollow" class="c-footer-a1 btn_blue">继续访问</a><a class="c-footer-a2" href="https://4g.lc" rel="nofollow">返回主页</a>
</div>
</div>
<div class="footer">Copyright © 4g.lc 世界旅程</div>
</body>
</html>

 

这样跳转页面做好了,保存为page-goto.php丢到主题目录下,在wp后台新建一个页面选择“外链跳转”模板,固定链接改为http://你的网站/goto 确定。如此跳转页的链接就是http://你的网站/goto了。

评论者的链接转内链

剩下就是改URL,喜欢改哪里就改哪里,比如本站仅对评论区的访客链接进行了修改,修改href里面的链接格式,其中有这么一句:

href="'. $comment->comment_author_url. '"

改为

href="'.get_bloginfo('home').'/goto?url='.base64_encode($comment->comment_author_url).'"

当然,你也可以用wp的函数钩子来替换评论者的链接! 改好之后,点击访客链接,就会显示成类似
http://www.4g.lc/goto.php?url=访客链接 这样的跳转链接。
注意:为了安全起见,外链url是经过base64加密的!

文章的外链转内链

如果要把文章主体的外链也转成内链,需要再写一个钩子,添加到functions.php里面,代码如下

// 文章外链转内链并转入跳转页面
add_filter('the_content','goto_url',999);
function goto_url($content){
    preg_match_all('/href="(.*?)"/',$content,$matches);
    if($matches){
        foreach($matches[1] as $val){
            if( strpos($val,home_url())===false&&strpos($val,"javascript:void(0)")===false )
                $content=str_replace("href=\"$val\"", "rel=\"nofollow\" target=\"_blank\" href=\"" . get_bloginfo('home'). "/goto?url=" .base64_encode($val). "\"",$content);
        }
    }
    return $content;
}

 

最后一步,不要忘了在robots.txt中添加一句:

Disallow: /goto.php?*

 

要禁止蜘蛛来爬这样的跳转链接,否则就前功尽弃了。

注意:

1、记得将以上代码的 logo 图片地址、返回主页地址和版权说明的 4G.LC世界旅程更改为自己站点的即可。

2、其实只需要修改 GO 跳转页面中的 HTML 代码即可。由于关闭网页在移动端的浏览器不太兼容,所以就把关闭网页改为返回主页。

3、个人认为这个 GO 跳转页面不单单适用于 WordPress 站点,应该也是适用于 ZBlog 站点的,所以有需要的博主站长可以自行参考折腾试试。

我们来测试下点击打开

恭喜,此资源为免费资源,请先
更新不易,维护更不易,如果本站资源对您有帮助,你高兴的话请您打赏小站一下,让小站用来支付服务器和带宽的成本,因为本站的所有资源都是免费下载的,包括花钱购买的商业源码 本站提供下载内容基本都是免费的,本站提供资源不保证您一定能用,请下载时看清楚,本站没有能力做到帮每个人安装,安装请参考说明

上一篇: 下一篇:
发表评论
加载中...

相关文章