របៀបបង្កើតទំព័រ Redirect Link (Safelink) ដ៏មានប្រសិទ្ធភាពបំផុតសម្រាប់
Blogger
ការបង្កើតទំព័រផ្ទេរលីងទៅខាងក្រៅ ឬដែលយើងហៅថា
Safelink គឺជាទំព័រមួយដែលជួយត្រួតពិនិត្យសុវត្ថិភាពលីង (URL)
មុនពេលអ្នកប្រើប្រាស់ទៅដល់គោលដៅ ដើម្បីប្រាកដថាវាមិនមានផ្ទុកមេរោគ ឬ Malware
ផ្សេងៗ។
ក្នុងអត្ថបទនេះ ខ្ញុំនឹងណែនាំបងប្អូនពីរបៀបបង្កើតទំព័រ Safelink
នៅលើប្លុករបស់បងប្អូនតាមរបៀបដែលត្រឹមត្រូវបំផុត និងគ្មានកំហុសបច្ចេកទេស
(Error) ដូចដែលធ្លាប់ជួបប្រទះពីមុនមក។
មគ្គុទ្ទេសក៍បង្កើត Safelink សម្រាប់ Blogger
ជំហានទី ១៖ បង្កើតទំព័រ Safelink Page
ដំបូង សូមចូលទៅកាន់ Blogger Dashboard របស់អ្នក។
ចូលទៅកាន់ផ្នែក Pages (ទំព័រ) រួចចុចយក
New Page (ទំព័រថ្មី) ។
ប្តូរការសរសេរទៅជាផ្នែក
HTML View រួចចម្លងកូដខាងក្រោមនេះយកទៅដាក់៖
---
បងប្អូនគ្រាន់តែចម្លងកូដខាងក្រោមនេះ រួចយកទៅដាក់ក្នុងទំព័រ (Page)
ដែលបានបង្កើតក្នុងជំហានទី ១៖
Safelink-Page-Code.html
ចម្លងកូដ (Copy)
<style>#header-blog { display: none; } #sidebar-wrapper {display: none;} #main-wrapper {width: 100%;background: #fff;} #footer-wrapper {display: none;}</style>
<div class="ad-placement">
<!--[ Your_ad_code_here ]-->
<a class="ads-here" href="/">Responsive Advertisement</a>
</div>
<div class="safelink-button" id="safelink">
<div style="text-align: center;">
<div class="button outline" id="safelink-wait">Please wait...</div>
<script>/*<![CDATA[*/ var currentURL = location.href; var str = currentURL; var res = str.replace(' https://www.anhtrainang.com/p/redirect.html ' + '?url=', " "); function changeLink(){ var decodedString = Base64.decode(res); window.open(decodedString, '_blank')}; document.write('<a href="#getLink" id="safelink-download" class="button">Click here to continue</a>'); var linkDL = document.getElementById("safelink-download"); var notif = document.getElementById("safelink-wait"); var time = 15; var textTime = document.createElement("span"); linkDL.parentNode.replaceChild(textTime, linkDL); var id; id = setInterval(function () { time--; if (time < 0) { textTime.parentNode.replaceChild(linkDL, textTime); clearInterval(id); notif.style.display = "none"; linkDL.style.display = "inline-block"; } else { textTime.innerHTML = "Link will appear in " + time.toString() + " seconds"; }}, 1000); /*]]>*/</script>
</div>
</div>
<div class="safelink-content">
<p>Blogger is a free service for communication, self-expression, and freedom of speech... (អត្ថបទវែងដែលបងបានផ្ដល់ឱ្យ)</p>
</div>
<div class="safelink-create" style="text-align: center;">
<div class="ad-placement">
<!--[ Your_ad_code_here ]-->
<a class="ads-here" href="/">Responsive Advertisement</a>
</div>
<div id="getLink">
<a class="button" href="javascript:;" onclick="changeLink();" rel="noreferrer noopener">Continue</a>
</div>
<div class="ad-placement">
<!--[ Your_ad_code_here ]-->
<a class="ads-here" href="/">Responsive Advertisement</a>
</div>
</div>
⚠️ សម្គាល់៖
បងប្អូនត្រូវប្តូរលីង
https://www.anhtrainang.com/p/redirect.html ទៅជាលីងទំព័រ
Safelink ផ្ទាល់ខ្លួនរបស់បងប្អូនវិញ។
អាចដាក់កូដពាណិជ្ជកម្ម (Adsense) ក្នុងកន្លែង
Your_ad_code_here ដើម្បីបង្កើនចំណូល។
---
⚠️ ចំណុចត្រូវចងចាំ (Note):
សូមកុំភ្លេចប្តូរលីងដែលបានបញ្ជាក់ក្នុងកូដខាងលើ (ជំហានទី ២) ទៅជាលីងទំព័រ
Safelink ដែលបងប្អូនទើបតែបង្កើតអម្បាញ់មិញ។ បងប្អូនអាចដាក់ឈ្មោះវាថា
redirect ឬឈ្មោះអ្វីក៏បានតាមចិត្ត។
ជំហានទី ២៖ បន្ថែម CSS, Javascript និងដោះស្រាយបញ្ហា ?m=1
ដើម្បីឱ្យប៊ូតុង និងទម្រង់ Safelink ដំណើរការបានស្អាត បងប្អូនត្រូវយកកូដ
CSS ខាងក្រោមនេះ ទៅផាស (Paste) នៅពីលើ Tag
</b:skin> នៅក្នុងផ្នែក
Theme > Edit HTML ៖
Custom-Safelink-CSS
ចម្លង CSS (Copy)
/* Safelink CSS Styles */
.safelink-button { text-align: center; margin: 20px 0; }
.button { background-color: #3498db; color: white; padding: 12px 24px; border-radius: 5px; text-decoration: none; font-weight: bold; display: inline-block; cursor: pointer; border: none; transition: 0.3s; }
.button:hover { background-color: #2980b9; box-shadow: 0 4px 12px rgba(0,0,0,0.2); }
.button.outline { background: transparent; border: 2px solid #3498db; color: #3498db; }
#safelink-wait { font-size: 18px; color: #e67e22; font-weight: bold; padding: 10px; }
.ad-placement { margin: 20px 0; text-align: center; background: #f9f9f9; padding: 10px; border: 1px dashed #ddd; }
.safelink-content { margin-top: 30px; font-size: 16px; color: #555; line-height: 1.8; }
---
បន្តមកទៀត នេះគឺជាកូដ CSS បន្ថែមសម្រាប់កំណត់រូបរាងប៊ូតុង
និងពណ៌នៃទំព័រ Safelink របស់បងប្អូន (បងប្អូនអាចកែប្រែពណ៌ត្រង់ផ្នែក
:root តាមចំណង់ចំណូលចិត្ត)៖
Safelink-Style-Design.css
ចម្លងកូដ (Copy)
/* Safelink Stylesheet */
:root {
--link-outline-color: #48525c;
--link-bg-color: #204ecf;
}
.button {
display: inline-flex;
align-items: center;
margin: 15px 15px;
padding: 10px 20px;
outline: 0;
border: 0;
border-radius: 2px;
color: #fefefe;
background-color: var(--link-bg-color);
font-size: 14px;
white-space: nowrap;
overflow: hidden;
max-width: 100%;
line-height: 2em;
}
.button.outline {
color: var(--link-outline-color);
background-color: transparent;
border: 1px solid #ebeced;
}
.button.outline:hover {
border-color: var(--link-bg-color);
}
.safelink-button, .safelink-create > * {
margin: 1.8em 0;
}
.safelink-button span {
display: block;
font-size: 12px;
}
#getLink {
margin: 5px 0;
}
#getLink .button {
display: none;
}
#getLink:target .button {
display: inline-flex;
}
----
ជំហានបន្តបន្ទាប់ទៀតនេះ គឺការប្រើប្រាស់កូដ
JavaScript ដើម្បីលុបកន្ទុយ
?m=1 ចេញពីលីងប្លុករបស់បងប្អូន។ សូមចម្លងកូដខាងក្រោមនេះ ទៅផាស
(Paste) នៅពីលើ Tag </head> ក្នុងផ្នែក
Edit HTML ៖
Remove-M1-Script.js
ចម្លងកូដ (Copy)
<script>
/* JavaScript to Remove ?m=1 from URL */
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);
}
</script>
*ការលុប ?m=1 ជួយឱ្យលីងប្លុករបស់បងប្អូនមើលទៅមានសណ្តាប់ធ្នាប់
និងមានជំនឿចិត្តខ្ពស់ពីអ្នកចុចអាន។
----
ជំហានទី ៣៖ បន្ថែម JavaScript សម្រាប់ប្តូរលីងអូតូ និងការការពារលីង (Encoding)
នេះគឺជាជំហានបង្ហើយ! សូមចម្លងកូដ JavaScript ដ៏មានឥទ្ធិពលខាងក្រោមនេះ ទៅផាស
(Paste) នៅពីលើ Tag </body> ក្នុង Theme របស់បងប្អូន។
កូដនេះនឹងជួយប្តូររាល់លីងដែលចេញទៅខាងក្រៅ ឱ្យឆ្លងកាត់ទំព័រ Safelink
ដែលយើងបានបង្កើត៖
Auto-Safelink-Redirect.js
ចម្លងកូដទាំងអស់ (Copy)
<b:if cond='data:view.isSingleItem'>
<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 protected_links = "facebook.com,instagram.com,twitter.com,youtube.com";
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 = [" https://www.anhtrainang.com/p/redirect.html "];
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("http")) { 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 = "noopener noreferrer"; a_to_vb++;
}
}
};
function a_to_fa() { var a_to_vf = new Array(); protected_links = protected_links.replaceAll(" ", ""); a_to_vf = protected_links.split(","); return a_to_vf; };
auto_safelink();
/*]]>*/
</script>
</b:if>
💡 តិចនិកក្នុងការកំណត់បន្ថែម៖
ប្តូរលីងផ្ទាល់ខ្លួន៖ សូមប្តូរលីង
https://www.anhtrainang.com/p/redirect.html
ទៅជាលីងទំព័រដែលបងប្អូនបានបង្កើតក្នុងជំហានទី ១។
ការពារលីង៖
បងប្អូនអាចបន្ថែមឈ្មោះគេហទំព័រដែលមិនចង់ឱ្យឆ្លងកាត់ Safelink (ដូចជា
Facebook, Instagram) នៅក្នុងផ្នែក
protected_links ដោយគ្រាន់តែប្រើសញ្ញាក្បៀស ( , )
ផ្ដាច់ពីគ្នា។
សេចក្តីសន្និដ្ឋាន
ខាងលើនេះគឺជាវិធីសាស្ត្រស្តង់ដារបំផុតក្នុងការបង្កើតទំព័រ Redirect Link
សម្រាប់ Blogspot ។ វិធីនេះខ្ញុំបានប្រើប្រាស់ដោយជោគជ័យ
និងមានប្រសិទ្ធភាពខ្ពស់បំផុត។ ប្រសិនបើបងប្អូនមានចម្ងល់
ឬជួបការលំបាកត្រង់ចំណុចណាមួយ សូមបញ្ចេញមតិ (Comment) នៅខាងក្រោម
ខ្ញុំនឹងរីករាយក្នុងការជួយបងប្អូន!
សូមជូនពរបងប្អូនទទួលបានជោគជ័យ! 🚀