ชมรมนิติกรองค์กรปกครองส่วนท้องถิ่น:เว็บไซท์อันดับ๑ของวงการท้องถิ่น

ส่วนของเว็บมาสเตอร์ => เว็บที่เรานำมาให้แก้ไขเว็บไซท์ => วิธีโมดิฟายธีม จาก nevikup.blogspot => หัวข้อที่ตั้งโดย: admin เมื่อ 03-09-2020, 08:14:47

ชื่อ: [SMF] สร้างหน้าพักสำหรับลิงค์ไปนอกเว็บ Redirectpage
โดย: admin เมื่อ 03-09-2020, 08:14:47
 [SMF] สร้างหน้าพักสำหรับลิงค์ไปนอกเว็บ Redirectpage
ไปตามบอร์ดใหญ่ๆ เวลามีลิงค์ให้คลิกไปยังเว็บอื่น ก่อนไปถึงเว็บนั้นๆ เราจะเจอหน้าหนึ่งดักไว้ก่อนเสมอ และจะมีข้อความว่า ..
"คุณกำลังลิงค์ไปนอกเว็บยังเว็บไซต์ www.xxxx.com"
หรือบางเว็บอาจแอบแปะโฆษณาในหน้าตรงนี้ด้วยและอาจใช้ข้อความอย่างอื่น แต่ก็ใกล้เคียงแบบนี้
หน้านี้เรียกว่า "หน้าพัก" หรือ Redirect Page

หลายคนหรือแม้แต่ผมเองก็สงสัยว่ามันมีประโยชน์อะไรหรือไอ้หนักพักเนี่ยะ โคตรเกะกะลูกกะตา เวลาจะคลิกไปยังเว็บอื่นมันยังมาดักเรา 5-10 วินาที เสียเวลานะเว้ยเฮ้ย!!

ประโยชน์ของมันก็คือ เพื่อไม่ให้มี link ออกไปจากหน้ากระทู้โดยตรงเพื่อผลดีต่ออันดับใน google ดังนั้นการที่สมาชิกจะใช้วิธีใส่ลิ้งในลายเซ็นหรือทำลิ้งในกระทู้เพื่อหวังผล back link ก็จะไม่มีผลต่อ อันดับใน google เห็นประโยชน์ของมันแล้วใช่มั้ยครับ ถ้าเห็นว่าเข้าท่าดี งั้นมาลงมือทำกันเลยดีกว่า

วิธีทำมี 2 แบบให้เลือกครับ
วิธีแรก ง่ายๆเลยไปหามอดมาติดในบอร์ดซะ ตามลิงค์นี้เลย http://custom.simplemachines.org/mods/index.php?mod=2562
วิธีลงไม่ยุ่งยากเท่าไรคล้ายมอดอื่นๆทั่วไป มีหน้าสำหรับ settings ก็ลองไปเซตๆ ติ้งๆ ดู ผมไม่พูดถึงรายละเอียด

ส่วนอีกวิธีหนึ่ง สำหรับคนที่ไม่แฮปปี้กับการติดตั้งมอด เพราะต้องให้เราไป set chmod ไฟล์โน้นไฟล์นี้ให้เป็น 777 ยุ่งยากนัก ขอแบบเมนวลๆ
ทำตามวิธีนี้เลยครับ (อ้างอิงจาก thaiseoboard.com)

1. เปิดไฟล์ Sources/Subs.php มองหาโค๊ด
// If it wasn't changed, no copying or other boring stuff has to happen!
if ($data != substr($message, $last_pos, $pos - $last_pos + 1))
{
$message = substr($message, 0, $last_pos) . $data . substr($message, $pos + 1);
// Since we changed it, look again incase we added or removed a tag. But we don't want to skip any. 
  $old_pos = strlen($data) + $last_pos - 1;
  $pos = strpos($message, '[', $last_pos);
  $pos = $pos === false ? $old_pos : min($pos, $old_pos);
  }
}

จากนั้นเติมโค๊ดในบรรทัดถัดมา..
$_SERVER['svz']['go'] = '/go.php?';

$message = preg_replace(array('~\[direct\](.*?)\[/direct\]~','~\[direct\=(.*?)](.*?)\[/direct\]~'),array('$1 (http://$1)%svz%2','$2 (http://$1)%svz%2'),preg_replace_callback('~\(.*?)\[/url\]~',create_function('$m','$go=$_SERVER[\'svz\'][\'go\'];$v=@parse_url($m[1]);return (!preg_match(\'~^\'.$go.\'~\',$m[1])&&$_SERVER[\'HTTP_HOST\']!=$v[\'host\'])?\'[url=\'.$go.$m[1].\']\'.$m[2].\' (http://(.*?)%5C)%svz%1\':\'.\']\'.$m[2].\' (http://\'.$m[1)\';'),preg_replace('~\[url\](.*?)\[/url\]~','$1 (http://$1)',$message)));

$message = str_replace (array('%svz%1', '%svz%2'), array(' [pr]', ' [direct]'), $message);

สิ่งที่ต้องตระหนักให้มากๆคือไฟล์ go.php ต้องอ้างอิงพาธให้ถูกต้องนะครับ
อ้างอิงถูกต้องหรือไม่อยู่ที่คุณว่าจะเก็บไฟล์ go.php ไว้ที่ไหน
คำถามที่ตามมาคือไฟล์ go.php ควรมีอะไรบ้างในนั้น
อะ ผมยกไฟล์ go.php ให้เลยแบบนี้นะ

<html>
<head>
<meta http-equiv="Content-Language" content="th">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<div align="center">
<p>
<font color="#0000FF">
<a href='<?php echo $_REQUEST['url']; ?>' rel="nofollow"><?php echo $_REQUEST['url']; ?></a></span></font></p>
<script language="javascript"> //setTimeout('document.RedirectX.submit()', 1000); setTimeout('top.location.href="<?php echo $_REQUEST['url']; ?>"', 5000); </script>
<br>
<font color="#008000">เรากำลังพาท่านไปยังหน้าที่ต้องการ.. กรุณารอสักครู๋!</font> <br>
</div>
</body>
</html>

เสร็จแล้วครับ ลองเอาไปประยุกต์ใช้ดู ขัดข้องสงสัยประการใด ..โพสต์ถามได้นะครับ