发布价值信息
Wordpress、Software、VPN。。

分享最近对网站外链跳转页面代码的一些改善

这篇文章发布时间为2016年11月14日,因年久失修,一些图片或者资源可能已经失效。 如果出现这些问题,请在下面留言,我们会尽快修复。

部署代码:

1、php版本

 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="https://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'];
}
?>






<?php echo $title;?>



页面加载中,请稍候...

将以上代码保存为go.php上传到网站根目录即可。

JS版本






页面加载中,请稍候...



页面加载中,请稍候...

选择JS 版本将以上代码保存为 go.html 上传到网站根目录即可。

2个版本的功能是一致的,优缺点区别:PHP版本是动态的,会略微产生服务器的性能负载,而JS版本则需要浏览器支持JS才可以功能。不过目前来看,绝大部分浏览器都是支持的!

Nginx伪静态

PHP版本

# 外链跳转伪静态 php版本
rewrite ^/go/(.*)$ /go.php?url=$1 last; #注意go.php的实际路径,默认为网站根目录

JS 版本

# 外链跳转伪静态 js 版本
rewrite ^/go/(.*)$ /go.html?url=$1 last; #注意go.html 的实际路径,默认为网站根目录

实际上,将php版本保存为 index.php 或 将JS版本保存为 index.html,然后在网站根目录新建一个go文件夹,把 index.php 或 index.html 上传到go文件夹中,那么Nginx就可以使用一条通用规则了:

rewrite ^/go/([^\?]+)$ /go/?url=$1 last;

Apache伪静态

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

将上述规则代码添加到 .htaccess 文件的第一行即可。

文章外链替换

//文章外链跳转伪静态版
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;
}

评论外链跳转

//评论者链接重定向
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";
        }
    }	
}

下载外链跳转

// 下载外链跳转
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;
}
展开阅读全文
赞(0) 打赏本站

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

×
打赏作者
未经允许不得转载:何先生 » 分享最近对网站外链跳转页面代码的一些改善
分享到: 更多 (0)

评论 2

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. 沙发

    我还是用的主题自带的,懒得折腾了。

    Koolight
    1
    3年前 (2016-11-29)回复 Linux Google Chrome
    • @Koolight 是呀,当折腾腻了就变懒了,哈哈,空一段时间有闲心了可以折腾折腾

      Biebb
      管理员
      3年前 (2016-11-29)回复 Linux Google Chrome

何先生的博客 专注分享 更优质

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

何先生自用推荐:Vultr vps

限时:注册即可赠送 $25美元

服务器每月仅需:$5/月

注册