使用示例
方法一:纯代码实现
首先,在自己的wordpress网站的根目录下新建一个go.php文件,在go.php里面输入以下代码
<?php $t_url = preg_replace('/^url=(.*)$/i','$1',$_SERVER["QUERY_STRING"]); if(!empty($t_url)) { preg_match('/(http|https):\/\//',$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='https://blog.lan796.top/'; $title='参数错误,正在返回首页...'; } } } else { $title='参数缺失,正在返回首页...'; $url='https://blog.lan796.top/'; } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="refresh" content="1;url='<?php echo $url;?>';"> <title><?php echo $title;?></title> <style> body{background:#000}.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:50%;left:50%;margin-left:-90px;margin-top: 2px;color:#BBB;letter-spacing:1px;font-weight:700;font-size:36px;font-family:Arial}.spinner{position:absolute;top:50%;left:50%;display:block;margin-left:-160px;width:1px;height:1px;border:25px solid rgba(100,100,100,0.2);-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>
使用方法:保存之后,则外链跳转形式为: {本站地址}/go.php?{外链地址}
使用:在添加外链的时候,只要给外链加上统一的跳转前缀:http://网站地址/go.php? 即可。
为了防止蜘蛛爬行,在 Robot s 禁止所有蜘蛛爬行 /go?url 目录!
Disallow: /go/ Disallow: /go?url
方法二:插件实现
有些插件也能实现这个外链跳转
1.Simple URLs插件:设置简单,只需要要后台设置好后缀和目标页面即可
2.Link-Hopper插件:跳转链接的基础地址可以随意设置
3.Pretty Link Lite插件:后台功能十分强大的,还有Pro版本,不过要money的。用它完全可以做一个短网址,像t.cn和bit.ly一样。
4.Affiliate Link Cloaking插件:推广链接转换工具,用来推广你的淘宝客等要隐藏的链接,可以使用它,附带统计功能。
5.WP No External Links插件:这个一款可以自动将博客内的外部链接转成内部链接,如http://www.baidu#com,则显示为http://www.mybj123#com/goto/http://www.baidu#com(#为.),可以尝试使用这个插件防权重丢失的。
6.Go Codes插件:和前面的wordpress外链跳转链接插件设置一样简单,带统计功能。
注意:插件具体使用与否可以自己尝试,这里不做太多解释,也不对插件对错负责。
方法三:网友推荐
创建go.php,写入:
<?php 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=="bloglan" ) { $t_url="//blog.lan796.top"; } 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='http://'.$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> 找到模板的functions.php文件添加: /*文章外链跳转伪静态版 此为新窗口打开,如不想要直接删除下面的tar _ ank(安全问题不能打出来) */ add_filter('the_content','link_jump',999); function link_jump($content){ preg_match_all('//',$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) && !preg_match('/(ed2k|thunder|Flashget|flashget|qqdl):\/\//i',$val)){ $content=str_replace("href=\"$val\"", "href=\"".home_url()."/go.php?".base64_encode($val)."\" rel=\"nofollow\" target='_blank' ",$content); } } } return $content; }
nginx伪静态设置(跳转方式为/go/):
# 外链跳转伪静态 php版本 rewrite ^/go/(.*)$ /go.php?url=$1 last; #注意go.php的实际路径,默认为网站根目录
以上代码增加了跳转美化效果,代码中已经用 base64 将源链接加密,并且加上了 nofollow,但恐怕蜘蛛还是能爬行,在 Robot s 禁止所有蜘蛛爬行 /go?url 目录!
Disallow: /go/ Disallow: /go?url
————————————————
版权声明:本文为CSDN博主「执刀人的工具库」的原创文章,遵循CC 4.0 BY-SA版权协议
原文链接:https://blog.csdn.net/winkexin/article/details/131150227
Comments 33 条评论
21BrCSmjjzi
Cdi0IjBRB6A
sKP3vfagIu8
3FlzrCqQtML
XeHT39lgh22
GCp2Y8l3Q4I
sgoESeUk117
CLFNthSM5EJ
NB0g4TAG2EX
XP1A4819n1l
jS9CnL1ATpp
RNbl7EwmQJX
PjfYLniIVI7
6RvvKhZzYz1
42ZxND5FoLE
6m9zvy1eHZT
qQ22zc9TiJ9
BwXxkStfhrE
GIkdKpPgGet
pwMRilaCjeU
d9Z4jrqjNy3
6hSrlvTesmi
fFBWIhcRVxQ
5l5wmhCud8K
nGFMazem3If
eCFcbIvY4jj
XDd7ahLaJ6I
3895UJclgm2
Ny9ykPY9fkW
HfE8apu7K7o
9AD1Tb3DLuS
zOCHZiia1iR
zcdXRmd9kU0