Tạo Trang Chuyển Hướng Safelink Trên Blog Chính Blogger

Có lẽ hầu hết độc giả của bài viết này đã biết safelink là gì, nhưng như một lời nhắc nhở sẽ được giải thích lại ở đây. Safelink là một trang trên một trang web hoặc blog được sử dụng để phát hiện xem url / liên kết đích có an toàn hay không do virus và phần mềm độc hại, trong ngắn hạn, safelink là một trang chuyển hướng trước khi người dùng đi đến trang đích.



Safelink thường được tìm thấy trên một blog / trang web có tải xuống chủ đề, nhưng điều thường gặp là safelink không có trong blog chính với một tên miền khác. Có một số nhược điểm của loại safelink này nhưng nó sẽ không được thảo luận ở đây. Suy nghĩ về những lợi ích khác nhau có thể được tối đa hóa từ safelink, sau đó chúng tôi cố gắng thử nghiệm bằng cách tải một trang safelink vẫn ở trên blog chính và hoạt động hoàn hảo.

Cách thức hoạt động của nó gần giống như các safelinks khác, chỉ có trang safelink vẫn nằm trong miền chính. Kịch bản là khi khách truy cập muốn tải xuống một số tệp nhất định trên blog, họ sẽ được chuyển đến một số trang nhất định của blog trước khi đến trang tải xuống tệp.

Có rất nhiều lợi ích từ phiên bản Safelink này, một số trong số đó là:

  • Không cần tạo blog mới và mua tên miền mới
  • Dễ dàng tùy chỉnh hơn
  • Ở lại trên Blog chính, nghĩa là tự động tăng số lượng khách truy cập trên blog chính
  • Tăng thứ hạng blog vì khách truy cập tăng
  • Giảm tỷ lệ thoát của blog chính
  • Phương tiện đặt adsense để tăng doanh thu blog.
  • An toàn 100% vì nó vẫn ở cùng miền với blog chính

Bước 1 - Tạo trang Safelink


- Tạo một trang tĩnh và chèn mã bên dưới vào ( Nếu báo lỗi thẻ a thì cứ việc nhấn loại bỏ rồi lưu lại )


<div class='separator' style='text-align:center'>
<div class='ads-top'><!-- Đặt mã tại đây --></div>

<div class='safelink' id='safelink'>
<center>
<div class='button outline' id='daplong'>
Vui lòng chờ...</div>
<script>/*<![CDATA[*/ var currentURL=location.href; var str = currentURL; var res = str.replace('Đặt liên kết trang của bạn vào đây' + '?url=', ""); function changeLink(){var decodedString = Base64.decode(res); window.open(decodedString,'_blank')}; document.write('<a href="#go-link" id="download-safelink" class="button outline">Nhấn vào đây để tiếp tục</a>'); var linkDL = document.getElementById("download-safelink"); var notif = document.getElementById("daplong"); var waktu = 5; var teks_waktu = document.createElement("span"); linkDL.parentNode.replaceChild(teks_waktu, linkDL); var id; id = setInterval(function () { waktu--; if (waktu < 0) { teks_waktu.parentNode.replaceChild(linkDL, teks_waktu); clearInterval(id); notif.style.display = "none"; linkDL.style.display = "inline-block"; } else { teks_waktu.innerHTML = "Liên kết sẽ xuất hiện sau " + waktu.toString() + " giây"; }}, 1000); /*]]>*/</script></center>
</div>

<div class='separator-text'><!-- Đặt mã tại đây --></div>

<div class='blockLink' style='text-align:center'>
<div id='ads-left' class='ads-left'><!-- Đặt mã tại đây --></div>

<div id='go-link'>
<a class='button' href='javascript:void(0)' onclick='changeLink();' rel='nofollow noreferrer'>Tiếp Tục</a>
</div>

<div id='ads-right' class='ads-right'><!-- Đặt mã tại đây --></div>
</div>


  • Đặt mã Adsense vào chỗ đã đánh dấu
  • Các khuyến nghị cho kích thước adsense phù hợp là đáp ứng cho đầu và 336x280 ở bên trái và bên phải của safelink. 
  • Thay thế link trang mà bạn đã tạo
  • Con số 5 trong đoạn mã trên là tham số thời gian (giây) liên kết đích được hiển thị, bạn có thể thay đổi nó thành nhanh hơn hoặc chậm hơn. 
  • Bạn cũng có thể tùy chỉnh văn bản thời gian xuất hiện bằng cách thay đổi 'Liên kết sẽ xuất hiện trong','giây'. .

Bước 2: Chèn mã vào Blog

Bạn chuyển đến phần Chỉnh sửa mẫu HTML ( Lưu ý: Lưu mẫu lại trước khi chỉnh để tránh lỗi không cần thiết )


1. Mã CSS


Mã CSS này dùng để hiển thị bố cục trên trang safelink và để ẩn tiện ích safelink xuất hiện trên blog.

/* Safelink */
.button{display: inline-flex;display: -webkit-inline-flex;flex-wrap: wrap;-webkit-flex-wrap: wrap;align-items: center;-webkit-align-items: center;margin-bottom: 10px;padding: 9px 20px;border-radius: 10px;font-size: .8rem;line-height: 1.3rem;background-color: #fff;color: #161617;}
.button.outline{background-color: #fdd929;box-shadow: 0 2px 5px 0 rgba(0,0,0,.1);}
.safelink span{display: block;font-size: 12px}
.blockLink{display: flex;display: -webkit-flex;flex-wrap: wrap;-webkit-flex-wrap: wrap;align-items: center;-webkit-align-items: center}
.blockLink > div{display: block;width: 35%;}
.blockLink > div#go-link{width: 30%;}
.blockLink > div#go-link a{display: none;margin: 0}
.blockLink > div#go-link:target a{display: inline-flex}
.ads-top{margin: 0 0 20px 0;text-align: center}
#HTML99,#HTML99 .widget-content{border: 0 !important;margin: 0 !important;padding: 0 !important}
/* Responsive */
@media screen and (max-width: 768px){.blockLink > div{width: 100% !important;margin: 0 0 15px;text-align: center}.blockLink > div:last-child{margin: 0}}

Nếu bạn gặp khó khăn khi tìm một nơi để đặt mã css ở trên, bạn có thể tìm thẻ </head> và đặt mã css trực tiếp lên trên thẻ </head> với mã CSS phải để trong thẻ <style></style>

2. Javascript


Tìm kiếm thẻ </head> và đặt mã dưới đây trên thẻ </head>



<b:if cond='data:blog.pageType == &quot;static_page&quot;'>
<script>/*<![CDATA[*/ var uri = window.location.toString(); if (uri.indexOf("%3D","%3D") > 0) { var clean_uri = uri.substring(0, uri.indexOf("%3D")); window.history.replaceState({}, document.title, clean_uri);} var uri = window.location.toString(); if (uri.indexOf("%3D%3D","%3D%3D") > 0) { var clean_uri = uri.substring(0, uri.indexOf("%3D%3D")); window.history.replaceState({}, document.title, clean_uri);} var uri = window.location.toString(); if (uri.indexOf("&m=1","&m=1") > 0) { var clean_uri = uri.substring(0, uri.indexOf("&m=1")); window.history.replaceState({}, document.title, clean_uri); } var uri = window.location.toString(); if (uri.indexOf("?m=1","?m=1") > 0) { var clean_uri = uri.substring(0, uri.indexOf("?m=1")); window.history.replaceState({}, document.title, clean_uri);}; var protocol=window.location.protocol.replace(/\:/g,''); if(protocol=='http'){ var url=window.location.href.replace('http','https'); window.location.replace(url);} /*]]>*/</script>
</b:if>

3. Tạo Widget mới


Tìm phần tiện ích thanh bên của mẫu thường được đánh dấu bằng mã <b:section> hoặc là <b:widget > và thêm mã dưới  đây vào

<b:widget cond='data:view.isSingleItem' id='HTML99' locked='false' title='Safelink' type='HTML' version='1'>
  <b:widget-settings>
    <b:widget-setting name='content'/>
  </b:widget-settings>
  <b:includable id='main'>
    <div class='widget-content'>
      <script>/*<![CDATA[*/ var Base64 = {_keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", encode: function (input) {var output = ""; var chr1, chr2, chr3, enc1, enc2, enc3, enc4; var i = 0; input = Base64._utf8_encode(input); while (i < input.length) {chr1 = input.charCodeAt(i++); chr2 = input.charCodeAt(i++); chr3 = input.charCodeAt(i++); enc1 = chr1 >> 2; enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); enc4 = chr3 & 63; if (isNaN(chr2)) {enc3 = enc4 = 64;} else if (isNaN(chr3)) {enc4 = 64;} output = output + this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) + this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);} return output; }, decode: function (input) {var output = ""; var chr1, chr2, chr3; var enc1, enc2, enc3, enc4; var i = 0; input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); while (i < input.length) {enc1 = this._keyStr.indexOf(input.charAt(i++)); enc2 = this._keyStr.indexOf(input.charAt(i++)); enc3 = this._keyStr.indexOf(input.charAt(i++)); enc4 = this._keyStr.indexOf(input.charAt(i++)); chr1 = (enc1 << 2) | (enc2 >> 4); chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); chr3 = ((enc3 & 3) << 6) | enc4; output = output + String.fromCharCode(chr1); if (enc3 != 64) {output = output + String.fromCharCode(chr2);} if (enc4 != 64) {output = output + String.fromCharCode(chr3);} } output = Base64._utf8_decode(output); return output;}, _utf8_encode: function (string) {string = string.replace(/\r\n/g, "\n"); var utftext = ""; for (var n = 0; n < string.length; n++) {var c = string.charCodeAt(n); if (c < 128) {utftext += String.fromCharCode(c);} else if ((c > 127) && (c < 2048)) {utftext += String.fromCharCode((c >> 6) | 192); utftext += String.fromCharCode((c & 63) | 128);} else {utftext += String.fromCharCode((c >> 12) | 224); utftext += String.fromCharCode(((c >> 6) & 63) | 128); utftext += String.fromCharCode((c & 63) | 128); }} return utftext;}, _utf8_decode: function (utftext) {var string = ""; var i = 0; var c = c1 = c2 = 0; while (i < utftext.length) {c = utftext.charCodeAt(i); if (c < 128) {string += String.fromCharCode(c); i++;} else if ((c > 191) && (c < 224)) {c2 = utftext.charCodeAt(i + 1); string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); i += 2;} else {c2 = utftext.charCodeAt(i + 1); c3 = utftext.charCodeAt(i + 2); string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); i += 3;}} return string; }}; var encode = document.getElementById('encode'), decode = document.getElementById('decode'), output = document.getElementById('output'), input = document.getElementById('input'); var User_ID = ""; var protected_links = ""; var a_to_va = 0; var a_to_vb = 0; var a_to_vc = ""; function auto_safelink() {auto_safeconvert();}; function auto_safeconvert() {var a_to_vd = window.location.hostname; if (protected_links != "" && !protected_links.match(a_to_vd)) {protected_links += ", " + a_to_vd;} else if (protected_links == "") {protected_links = a_to_vd;} var a_to_ve = ""; var a_to_vf = new Array(); var a_to_vg = 0; a_to_ve = document.getElementsByTagName("a"); a_to_va = a_to_ve.length; a_to_vf = a_to_fa(); a_to_vg = a_to_vf.length; var a_to_vh = false; var j = 0; var daftarPostingan = [ "Đặt liên kết của bạn vào đây" ]; var randomPostingan = daftarPostingan[Math.floor(Math.random()*daftarPostingan.length)]; var a_to_vi = ""; for (var i = 0; i < a_to_va; i++) {a_to_vh = false; j = 0; while (a_to_vh == false && j < a_to_vg) {a_to_vi = a_to_ve[i].href; if (a_to_vi.match(a_to_vf[j]) || !a_to_vi || !a_to_vi.match("https")) {a_to_vh = true;} j++; } if (a_to_vh == false) {var encryptedUrl = Base64.encode(a_to_vi); a_to_ve[i].href = randomPostingan + "?url=" + encryptedUrl; a_to_ve[i].rel = "nofollow noreferrer"; a_to_vb++; a_to_vc += i + ":::" + a_to_ve[i].href + "\n"; }} var a_to_vj = document.getElementById("anonyminized"); var a_to_vk = document.getElementById("found_links"); if (a_to_vj) {a_to_vj.innerHTML += a_to_vb;} if (a_to_vk) {a_to_vk.innerHTML += a_to_va;} }; function a_to_fa() {var a_to_vf = new Array(); protected_links = protected_links.replace(" ", ""); a_to_vf = protected_links.split(","); return a_to_vf; }; /*]]>*/</script>
      <script>/*<![CDATA[*/ protected_links = "facebook.com,instagram.com,twitter.com";auto_safelink(); /*]]>*/</script> <!-- Daftar link pengecualian -->
    </div>
  </b:includable>
</b:widget>


  • Đặt url của trang safelink của bạn một lần nữa trong phần được đánh dấu. 
  • Theo mặc định, tất cả các liên kết bên ngoài sẽ được chuyển đến trang safelink, thêm một số trang ngoại lệ như trang facebook của blog của bạn, v.v.bảo vệ', tách biệt bằng dấu phẩy (,) nếu bạn muốn thêm một số trang web loại trừ. 
  • cond = 'data:view.isSingleItem' làm cho widget chỉ xuất hiện trên trang bài viết và tĩnh, nó sẽ không xuất hiện trên các trang khác.

4. Lưu lại mẫu