原文链接:http://www.chenweiliang.com/cwl-629.html
WordPress如何将外链转内链?
文章外链自动转成内链代码
有时候我们因为做谷歌SEO排名,在WordPress网站分享一些被中国网络封锁的海外网站或论坛,这样的链接有被墙风险。
所以,我们要将文章中某些外链自动转换成内链。
外链转成内链优势
- 安全强化:增强对恶意请求的简单保护;
- 跳转模式:使用noscript标签来增加html js跳转模式;
- 跳转加密:Base64加密的外部链,兼容非加密跳转;
- 禁止收录:添加了禁止搜索引擎蜘蛛收录和捕获的META声明;
- 禁止使用:禁止其他网站使用我们的跳转页面。
WordPress文章外链自动转成内链的代理,有2个版本:
- PHP版本
- JS版本
PHP版本
将以下 PHP 代码保存为 go.php 并上传到网站根目录。
<?
php
if(strlen($_SERVER['REQUEST_URI']) > 255 ||
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=="chenweiliang" )
$t_url="http://www.chenweiliang.com/";
elseif($t_url=="etufo")
$t_url="http://www.etufo.org/";
//数据处理
if(!empty($t_url))
//判断取值是否加密
if ($t_url == base64_encode(base64_decode($t_url)))
$t_url = base64_decode($t_url);
//对取值进行网址校验和判断
preg_match('/^(http 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">
bodybackground:#555.loading-webkit-animation:fadein 2s;-moz-animation:fadein 2s;-o-animation:fadein 2s;animation:fadein 2s@-moz-keyframes fadeinfromopacity:0toopacity:1@-webkit-keyframes fadeinfromopacity:0toopacity:1@-o-keyframes fadeinfromopacity:0toopacity:1@keyframes fadeinfromopacity:0toopacity:1.spinner-wrapperposition:absolute;top:0;left:0;z-index:300;height:100%;min-width:100%;min-height:100%;background:rgba(255,255,255,0.93).spinner-textposition:absolute;top:45%;left:50%;margin-left:-100px;margin-top:2px;color:#000;letter-spacing:1px;font-size:20px;font-family:Arial.spinnerposition: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 spin0%,100%-webkit-transform:rotate(0deg) scale(1)50%-webkit-transform:rotate(720deg) scale(0.6)@-moz-keyframes spin0%,100%-moz-transform:rotate(0deg) scale(1)50%-moz-transform:rotate(720deg) scale(0.6)@-o-keyframes spin0%,100%-o-transform:rotate(0deg) scale(1)50%-o-transform:rotate(720deg) scale(0.6)@keyframes spin0%,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>
JS版本
将以下 JS 代码保存为 go.hmtl 并上传到网站根目录。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="robots" content="noindex, nofollow" />
<script>
//base64加密解密函数
var base64EncodeChars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var base64DecodeChars=new Array(-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,-1,0,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,-1,-1,-1,-1,-1,-1,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,-1,-1,-1,-1,-1);function base64encode(str)var out,i,len;var c1,c2,c3;len=str.length;i=0;out="";while(i<len)((c3&192)>>6));out+=base64EncodeChars.charAt(c3&63)return outfunction base64decode(str)var c1,c2,c3,c4;var i,len,out;len=str.length;i=0;out="";while(i<len)doc1=base64DecodeChars[str.charCodeAt(i++)&255]while(i<len&&c1==-1);if(c1==-1)breakdoc2=base64DecodeChars[str.charCodeAt(i++)&255]while(i<len&&c2==-1);if(c2==-1)breakout+=String.fromCharCode((c1<<2)return outfunction utf16to8(str)var out,i,len,c;out="";len=str.length;for(i=0;i<len;i++)c=str.charCodeAt(i);if((c>=1)&&(c<=127))out+=str.charAt(i)elseif(c>2047)((c>>6)&63));out+=String.fromCharCode(128elseout+=String.fromCharCode(192return outfunction utf8to16(str)var out,i,len,c;var char2,char3;out="";len=str.length;i=0;while(i<len)c=str.charCodeAt(i++);switch(c>>4)((char2&63)<<6)return outfunction doit()var f=document.f;f.output.value=base64encode(utf16to8(f.source.value));f.decode.value=utf8to16(base64decode(f.output.value));
//获取请求参数,支持伪静态
function GetQueryString(name)
&)"+ name +"=(.*)$");
var r = window.location.search.substr(1).match(reg);
if(r!=null)
return unescape(r[2]);
else
return window.location.pathname.replace('/go/',''); //注意代码中的/goto/和跳转地址/goto/保持一致,请记得自行修改!
var jump_url = GetQueryString("url");
//若传入的是base加密数据,则进行解密处理
if( jump_url==base64encode(base64decode(jump_url)))
jump_url = base64decode(jump_url);
//url简单正则
var UrlReg = "^((http|https|thunder|qqdl|ed2k|Flashget|qbrowser|ftp|rtsp|mms)://)";
//自定义一些跳转字符串,请根据实际需求自行发挥
if(jump_url=="chenweiliang")
var jump_url="http://www.chenweiliang.com/";
if(jump_url=="etufo")
var jump_url="http://www.etufo.org/";
//网址校验
if(jump_url == null || jump_url.toString().length<1 || !jump_url.match(UrlReg))
document.title = '参数错误,正在返回首页...';
jump_url = location.origin;
//延时执行跳转
setTimeout(
function link_jump()
//非本站域名不允许使用此跳转页面,请自行修改chenweiliang.com为自己的域名
var MyHOST = new RegExp("chenweiliang.com");
if (!MyHOST.test(document.referrer))
location.href = "http://" + MyHOST;
return;
location.href = jump_url;
, 1000);
setTimeout(function()window.opener=null;window.close();, 50000);
</script>
<title>页面加载中,请稍候...</title>
<style type="text/css">
bodybackground:#555.loading-webkit-animation:fadein 2s;-moz-animation:fadein 2s;-o-animation:fadein 2s;animation:fadein 2s@-moz-keyframes fadeinfromopacity:0toopacity:1@-webkit-keyframes fadeinfromopacity:0toopacity:1@-o-keyframes fadeinfromopacity:0toopacity:1@keyframes fadeinfromopacity:0toopacity:1.spinner-wrapperposition:absolute;top:0;left:0;z-index:300;height:100%;min-width:100%;min-height:100%;background:rgba(255,255,255,0.93).spinner-textposition:absolute;top:45%;left:50%;margin-left:-100px;margin-top:2px;color:#000;letter-spacing:1px;font-size:20px;font-family:Arial.spinnerposition: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 spin0%,100%-webkit-transform:rotate(0deg) scale(1)50%-webkit-transform:rotate(720deg) scale(0.6)@-moz-keyframes spin0%,100%-moz-transform:rotate(0deg) scale(1)50%-moz-transform:rotate(720deg) scale(0.6)@-o-keyframes spin0%,100%-o-transform:rotate(0deg) scale(1)50%-o-transform:rotate(720deg) scale(0.6)@keyframes spin0%,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>
请注意修改://非本站域名不允许使用此跳转页面,请自行修改chenweiliang.com为自己的域名
PHP和JS哪个好?
PHP 版本和 JS 版本的功能是一样的,区别在于:
- PHP版本是动态的,略有服务器负载产生;
- 而JS版本要求浏览器支持JS才能正常工作,
- 但是现在,大多数浏览器都支持它!
上传跳转页面后,接着就是将外链跳转代码,添加到WordPress主题的 function.php 文件里。
2 选 1 代码:
- 外链跳转无加密
- 外链跳转base64加密(推荐)
1.外链跳转无加密:
// 外链跳转无加密go.html?url
add_filter('the_content','link_to_jump',999);
function link_to_jump($content)
preg_match_all('/<a(.*?)href="(.*?)"(.*?)>/',$content,$matches);
if($matches)
foreach($matches[2] as $val)ico
return $content;
2.外链跳转base64加密(推荐):
// 外链跳转base64加密go.html?url
add_filter('the_content','link_to_jump',999);
function link_to_jump($content)
preg_match_all('/<a(.*?)href="(.*?)"(.*?)>/',$content,$matches);
if($matches)
foreach($matches[2] as $val)png
return $content;
若想要指定某个外链域名不自动转成内链(排除指定域名),可以修改以上代码:
&& strpos($val,'chenweiliang.com')===false
看到这里还是明白的朋友,陈沩亮建议你多看看,多思考,多动手,善用谷歌搜索,少提问题!
欢迎转载《WordPress如何将外链转内链?文章外链自动转成内链代码》
陈沩亮版权所有,转载请注明出处链接:http://www.chenweiliang.com/cwl-629.html
网站地址:http://www.chenweiliang.com/
我是陈沩亮,我的使命是帮助创业者、营销员和自媒体人用微信营销获取更大的成功和收获 ^_^
“不仅仅是总结网络营销干货,还分享用微信营销赚钱的方法!”
欲学更多秘技,请关注微信公众号:cwlblog
关注后回复关键字:80
可获取《超过80%不被人知的秘技》
没有评论:
发表评论