Πώς το WordPress μετατρέπει εξωτερικούς συνδέσμους σε εσωτερικούς συνδέσμους;Ο εξωτερικός σύνδεσμος του άρθρου μετατρέπεται αυτόματα στον κωδικό εσωτερικού συνδέσμου

WordPressΠώς να μετατρέψετε εξωτερικούς συνδέσμους σε εσωτερικούς συνδέσμους;

Ο εξωτερικός σύνδεσμος του άρθρου μετατρέπεται αυτόματα στον κωδικό εσωτερικού συνδέσμου

Μερικές φορές κάνουμε GoogleSEOΚατάταξη, κοινή χρήση ορισμένων ιστοτόπων στο εξωτερικό ή φόρουμ που έχουν αποκλειστεί από το κινεζικό δίκτυο στον ιστότοπο του WordPress, τέτοιοι σύνδεσμοι κινδυνεύουν να αποκλειστούν.

Επομένως, πρέπει να μετατρέψουμε αυτόματα ορισμένους εξωτερικούς συνδέσμους του άρθρου σε εσωτερικούς συνδέσμους.

Το πλεονέκτημα της μετατροπής εξωτερικών συνδέσμων σε εσωτερικούς συνδέσμους

  • Σκληρότητα ασφαλείας: Βελτιώστε την απλή προστασία έναντι κακόβουλων αιτημάτων.
  • Λειτουργία μετάβασης: χρησιμοποιήστε την ετικέτα noscript για να αυξήσετε τη λειτουργία μετάβασης html js.
  • Κρυπτογράφηση Jump: Κρυπτογραφημένη εξωτερική αλυσίδα Base64, συμβατή με μη κρυπτογραφημένο άλμα.
  • Απαγορεύεται η συμπερίληψη: Προστέθηκε μια δήλωση META που απαγορεύει στις μηχανές αναζήτησης τη συμπερίληψη και τη σύλληψη.
  • Απαγορευμένη χρήση: Απαγορεύστε άλλους ιστότοπους να χρησιμοποιούν τις σελίδες ανακατεύθυνσής μας.

Βήμα 1: Ανεβάστε το αρχείο στον ριζικό κατάλογο του ιστότοπου

Υπάρχουν 2 εκδόσεις του κώδικα που μετατρέπει αυτόματα τους εξωτερικούς συνδέσμους των άρθρων του WordPress σε εσωτερικούς συνδέσμους:

  1. Έκδοση PHP
  2. Έκδοση 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="https://www.chenweiliang.com/";
} elseif($t_url=="etufo") {
 $t_url="https://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|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>

Έκδοση JS

Αποθηκεύστε τον ακόλουθο κώδικα JS ως go.html και μεταφορτώστε τον στον ριζικό κατάλογο του ιστότοπου.

<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){c1=str.charCodeAt(i++)&255;if(i==len){out+=base64EncodeChars.charAt(c1>>2);out+=base64EncodeChars.charAt((c1&3)<<4);out+="==";break}c2=str.charCodeAt(i++);if(i==len){out+=base64EncodeChars.charAt(c1>>2);out+=base64EncodeChars.charAt(((c1&3)<<4)|((c2&240)>>4));out+=base64EncodeChars.charAt((c2&15)<<2);out+="=";break}c3=str.charCodeAt(i++);out+=base64EncodeChars.charAt(c1>>2);out+=base64EncodeChars.charAt(((c1&3)<<4)|((c2&240)>>4));out+=base64EncodeChars.charAt(((c2&15)<<2)|((c3&192)>>6));out+=base64EncodeChars.charAt(c3&63)}return out}function base64decode(str){var c1,c2,c3,c4;var i,len,out;len=str.length;i=0;out="";while(i<len){do{c1=base64DecodeChars[str.charCodeAt(i++)&255]}while(i<len&&c1==-1);if(c1==-1){break}do{c2=base64DecodeChars[str.charCodeAt(i++)&255]}while(i<len&&c2==-1);if(c2==-1){break}out+=String.fromCharCode((c1<<2)|((c2&48)>>4));do{c3=str.charCodeAt(i++)&255;if(c3==61){return out}c3=base64DecodeChars[c3]}while(i<len&&c3==-1);if(c3==-1){break}out+=String.fromCharCode(((c2&15)<<4)|((c3&60)>>2));do{c4=str.charCodeAt(i++)&255;if(c4==61){return out}c4=base64DecodeChars[c4]}while(i<len&&c4==-1);if(c4==-1){break}out+=String.fromCharCode(((c3&3)<<6)|c4)}return out}function 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)}else{if(c>2047){out+=String.fromCharCode(224|((c>>12)&15));out+=String.fromCharCode(128|((c>>6)&63));out+=String.fromCharCode(128|((c>>0)&63))}else{out+=String.fromCharCode(192|((c>>6)&31));out+=String.fromCharCode(128|((c>>0)&63))}}}return out}function 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){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:out+=str.charAt(i-1);break;case 12:case 13:char2=str.charCodeAt(i++);out+=String.fromCharCode(((c&31)<<6)|(char2&63));break;case 14:char2=str.charCodeAt(i++);char3=str.charCodeAt(i++);out+=String.fromCharCode(((c&15)<<12)|((char2&63)<<6)|((char3&63)<<0));break}}return out}function doit(){var f=document.f;f.output.value=base64encode(utf16to8(f.source.value));f.decode.value=utf8to16(base64decode(f.output.value))};
//获取请求参数,支持伪静态
function GetQueryString(name)
{
 var reg = new RegExp("(^|&)"+ 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="https://www.chenweiliang.com/";
}
if(jump_url=="etufo") {
 var jump_url="https://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">
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>

Σημειώστε την τροποποίηση://Αυτή η σελίδα μετάβασης δεν επιτρέπεται να χρησιμοποιηθεί για ονόματα τομέα εκτός από αυτόν τον ιστότοπο, τροποποιήστε το chenweiliang.com στο δικό σας όνομα τομέα

Τι είναι καλύτερο, PHP ή JS;

Οι λειτουργίες της έκδοσης PHP και της έκδοσης JS είναι οι ίδιες, η διαφορά είναι:

  • Η έκδοση PHP είναι δυναμική και δημιουργείται ελαφρώς φορτίο διακομιστή.
  • Και η έκδοση JS απαιτεί από το πρόγραμμα περιήγησης να υποστηρίζει το JS για να λειτουργεί σωστά,
  • Αλλά τώρα, τα περισσότερα προγράμματα περιήγησης το υποστηρίζουν!

Σημείωση: Εάν ο κωδικός μεταπήδησης της δοκιμαστικής έκδοσης JS δεν είναι έγκυρος, χρησιμοποιήστε τον κωδικό μεταπήδησης της PHP.

Βήμα 2: Προσθέστε κώδικα στο αρχείο function.php

Μετά τη μεταφόρτωση της σελίδας μετάβασης, το επόμενο βήμα είναι να προσθέσετε τον κώδικα μετάβασης εξωτερικού συνδέσμου στο αρχείο function.php του θέματος WordPress.

Κωδικός 2 προς 1:

  • 1) Άλμα εξωτερικού συνδέσμου χωρίς κρυπτογράφηση
  • 2) Εξωτερική κρυπτογράφηση jump link 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){
 if(strpos($val,'://')!==false && strpos($val,home_url())===false && strpos($val,'chenweiliang.com')===false && strpos($val,'ufo.org.in')===false && strpos($val,'etufo.org')===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\"", "rel=\"nofollow\" target=\"_blank\" href=\"go.html?url=$val\" ",$content);

}
 }
 }
 return $content;
 }

Εξωτερική κρυπτογράφηση άλματος συνδέσμου 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){
 if(strpos($val,'://')!==false && strpos($val,home_url())===false && strpos($val,'chenweiliang.com')===false && strpos($val,'ufo.org.in')===false && strpos($val,'etufo.org')===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\"", "rel=\"nofollow\" target=\"_blank\" href=\"go.html?url=" .base64_encode($val). "\" ",$content);

}
 }
 }
 return $content;
 }

Εξαιρείται ο καθορισμός ενός ονόματος τομέα εξωτερικού συνδέσμου από τη μη αυτόματη μετατροπή σε εσωτερικό σύνδεσμο (όνομα τομέαλευκή λίστα):

&& strpos($val,'你的域名')===false

Το robots.txt μπλοκάρει τις αράχνες

Προκειμένου να αποτρέψουμε τις αράχνες μηχανών αναζήτησης να ανιχνεύουν τους συνδέσμους μετάβασης, μπορούμε να προσθέσουμε κανόνες που απαγορεύουν στις αράχνες μηχανών αναζήτησης να ανιχνεύονται στο αρχείο robots.txt:

User-agent: *
Disallow: /go.html?url=*
Disallow: /go.php?url=*

Αυτό το άρθρο δεν έχει τελειώσει, συνεχίστε να διαβάζετε "Εκτεταμένη ανάγνωση"

Εκτεταμένη ανάγνωση:

Ιστολόγιο Hope Chen Weiliang ( https://www.chenweiliang.com/ ) shared "Πώς το WordPress μετατρέπει εξωτερικούς συνδέσμους σε εσωτερικούς συνδέσμους;Ο εξωτερικός σύνδεσμος του άρθρου μετατρέπεται αυτόματα σε κωδικό εσωτερικού συνδέσμου», κάτι που σας βοηθάει.

Καλώς ήρθατε να μοιραστείτε τον σύνδεσμο αυτού του άρθρου:https://www.chenweiliang.com/cwl-629.html

Καλώς ήρθατε στο κανάλι Telegram του ιστολογίου του Chen Weiliang για να λαμβάνετε τις τελευταίες ενημερώσεις!

🔔 Γίνετε ο πρώτος που θα αποκτήσει τον πολύτιμο "Οδηγό χρήσης εργαλείου τεχνητής νοημοσύνης μάρκετινγκ περιεχομένου ChatGPT" στον κορυφαίο κατάλογο του καναλιού! 🌟
📚 Αυτός ο οδηγός περιέχει τεράστια αξία, 🌟Αυτή είναι μια σπάνια ευκαιρία, μην τη χάσετε! ⏰⌛💨
Κοινοποιήστε και κάντε like αν σας αρέσει!
Η κοινή χρήση και τα like σας είναι το συνεχές μας κίνητρο!

 

发表 评论

Η διεύθυνση email σας δεν θα δημοσιευθεί. 必填 项 已 用 * 标注

κύλιση στην κορυφή