方法一:纯代码实现
首先,在自己的wordpress网站的根目录下新建一个go.php文件,在go.php里面输入以下代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
<?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 = 'http://mybj123.com/' ; $title = '参数错误,正在返回首页...' ; } } } else { $title = '参数缺失,正在返回首页...' ; $url = 'https://www.mybj123.com/' ; } ?> <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 目录!
1
2
|
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,写入:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
<?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 == "zhangge" ) { $t_url = "//zhangge.net" ; } 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 ; } |
# 外链跳转伪静态 php版本
rewrite ^/go/(.*)$ /go.php?url=$1 last; #注意go.php的实际路径,默认为网站根目录
以上代码增加了跳转美化效果,代码中已经用 base64 将源链接加密,并且加上了 nofollow,但恐怕蜘蛛还是能爬行,在 Robot s 禁止所有蜘蛛爬行 /go?url 目录!
1
2
|
Disallow: /go/ Disallow: /go?url |