完整跳转代码
I、PHP 版本
< ?php echo $title;?> 页面加载中,请稍候...
将以上代码保存为 go.php 上传到网站根目录即可。
JS 版本
和 PHP 基本一致的功能,可以放心使用
页面加载中,请稍候... 页面加载中,请稍候...
选择 JS 版本将以上代码保存为 go.html 上传到网站根目录即可。
Ps:2 个版本的功能是一致的,优缺点区别:PHP 版本是动态的,会略微产生服务器的性能负载,而 JS 版本则需要浏览器支持 JS 才可以功能。不过目前来看,绝大部分浏览器都是支持的!
②、Nginx 伪静态
之前的代码用的都是 “go.php?url=外链地址” 的形式,经常也看到有个别网站对外链跳转做了伪静态,也就是 “/go/外链” 这种形式。
这次,也试了下,感觉还不错,所以就整了下。只要在 Nginx 中加入如下规则即可:
I、PHP 版本
选择 JS 版本将以上代码保存为 go.html 上传到网站根目录即可。
Ps:2 个版本的功能是一致的,优缺点区别:PHP 版本是动态的,会略微产生服务器的性能负载,而 JS 版本则需要浏览器支持 JS 才可以功能。不过目前来看,绝大部分浏览器都是支持的!
②、Nginx 伪静态
之前的代码用的都是 “go.php?url=外链地址” 的形式,经常也看到有个别网站对外链跳转做了伪静态,也就是 “/go/外链” 这种形式。
这次,也试了下,感觉还不错,所以就整了下。只要在 Nginx 中加入如下规则即可:
I、PHP 版本
# 外链跳转伪静态 php版本 rewrite ^/go/(.*)$ /go.php?url=$1 last; #注意go.php的实际路径,默认为网站根目录
II、JS 版本
内容# 外链跳转伪静态 js 版本 rewrite ^/go/(.*)$ /go.html?url=$1 last; #注意go.html 的实际路径,默认为网站根目录
rewrite ^/go/([^\?]+)$ /go/?url=$1 last;
说白了,因为 index.php 或 index.html 是 WEB 读取的默认文件,其中 index.html 一般优先级比 index.php 更高一些,所以只需要重写到 go 目录即可,至于你选择 js 版本还是 php 版本就看你 index 放的是 php 还是 html 了。
此段文字看不懂的话,请忽略之。
Ps:上述代码如果不知道放到哪,可以直接放在 location / { 的前面即可。加入伪静态规则,并且重启 Nginx 之后,我们就可以通过 "/go/外链加密串" 的方式进行跳转了。
③、Apache 伪静态
RewriteRule ^go/(.*)$ /go.html?url=$1 [L]
将上述规则代码添加到 .htaccess 文件的第一行即可。
④、WordPress 替换
做好了跳转页面,我们就需要将之前应用的相关函数都修改一下。其实就是将代码中的
/go/?url=外链
改成
/go/base64 加密串
的模式,下面贴一下具体代码,请自行参考修改。
A. 文章外链替换
//文章外链跳转伪静态版 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/".base64_encode($val)."\" rel=\"nofollow\"",$content); } } } return $content; }
B. 评论外链跳转
//评论者链接重定向 function commentauthor($comment_ID = 0) { $url = get_comment_author_url( $comment_ID ); $author = get_comment_author( $comment_ID ); if ( empty( $url ) || 'http://' == $url ) { echo $author; } else { if (!preg_match(home_url(),$url)) { echo "$author"; } else { echo "$author"; } } }
C. 下载外链跳转
// 下载外链跳转 function links_nofollow($url) { if(strpos($url,'://')!==false && strpos($url,'zhangge.net')===false && !preg_match('/(ed2k|thunder|Flashget|flashget|qqdl):\/\//i',$url)) { $url = str_replace($url, home_url()."/go/".base64_encode($url),$url); } return $url; }
参考上述代码,修改一下替换后的链接形式即可。部署后,刷新前台文章或评论,就能看到效果了。
最新评论