สำหรับคนที่ใช้ WordPress ในการทำเว็บไซต์ หากคุณต้องการเปลี่ยนชื่อ URL ยกตัวอย่างจาก www.abc.com เป็น www.def.com คุณต้องทำการอัพเดท URL ในฐานข้อมูล MySQL Database ด้วย เพราะในฐานข้อมูลจะบันทึกและอ้างอิงข้อมูลจาก URL เดิม คุณจะพบ Error ต่างๆ มากมาย และยิ่งข้อมูลในเว็บไซต์มีขนาดใหญ่เท่าไหร่ก็จะใช้เวลานานและมีความยุ่งยากในการอัพเดทมากเท่านั้น

สำหรับบทความนี้ผมจะแนะนำทริค เทคนิคในการอัพเดท URL ในฐานข้อมูลแบบง่ายๆ แต่สามารถอัพเดทได้ละเอียดยิบไม่มีตกแม่แต่ตารางเดียว มาเริ่มต้นกันเลยครับ

ให้ Login เข้า phpMyAdmin โดยในแต่แต่ละ Web Hosting Control Panel เช่น Siteworx, cPanel, DirectAdmin ก็จะมีช่องทางการเข้าใช้งานที่แตกต่างกันไป แต่เมื่อ Login เข้ามายัง phpMyAdmin แล้วหน้าตาจะเหมือนกันตามภาพ จากนั้นให้เลือกฐานข้อมูลของ WordPress ที่ต้องการ Update URL (1) จะแสดงตารางทางด้านขวา โดยให้เราจำ Prefix ของฐานข้อมูล (2) ไว้ด้วย สำหรับภาพตัวอย่าง Prefix คือ chm_

Trick: โดยปกติแล้วค่าหลัก Prefix ของ WordPress คือ wp_ แต่เนื่องจาก WordPress เป็นที่นิยมและรู้จักกันทั่วโลก การใช้ Prefix เป็นค่าหลัก (wp_) ย่อมไม่ปลอดภัยสำหรับเว็บไซต์แน่นอน ดังนั้นในขั้นตอนการติดตั้ง WordPress ควรแก้ไขค่านี้ก่อน หรือหากติดตั้งไปแล้วก็สามารถเปลี่ยนได้โดยใช้ Plugin ที่เกี่ยวกับความปลอดภัย (Security)

จากนั้นให้กด tab SQL (3) เพื่อเรียกใช้คำสั่ง SQL หรือ Run SQL queries โดยจะมีหน้าตาตามภาพที่แสดงด้านล่าง จากนั้นให้ Copy Script ที่ผมได้เตรียมไว้ให้ด้านล่างวางลงในช่อง Run SQL query/queries (1)

ก่อน Copy Script นี้ไปวาง ให้ทำการแก้ไข URL ที่ต้องการเปลี่ยนหรืออัพเดทก่อน โดยในเคสตัวอย่างผมต้องการเปลี่ยน URL จาก abc.com ไปเป็น def.com จากนั้นให้ตรวจสอบและแก้ไข Prefix ของฐานข้อมูลให้ตรงกันด้วย

UPDATE chm_options SET option_value = replace(option_value, 'abc.com', 'def.com') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE chm_posts SET guid = replace(guid, 'abc.com','def.com');
UPDATE chm_posts SET post_content = replace(post_content, 'abc.com', 'def.com');
UPDATE chm_postmeta SET meta_value = replace(meta_value,'abc.com','def.com');

เมื่อแก้ไข Script และ Copy ไปวางในช่อง Rub SQL query/queries แล้ว ให้กด Go มุมขวาล่าง ระบบจะทำการค้นหา abc.com และแทนที่ด้วย def.com พร้อมทั้งรายงานผลการอัพเดทฐานข้อมูลให้เราทราบเมื่อประมวลผลเรียบร้อยแล้ว

[adinserter block="1"]

หลังจาก Run SQL query เรียบร้อยแล้วระบบจะรายงานผลการเปลี่ยน/อัพเดท URL ให้เราทราบ ให้สังเกตุบรรทัดที่สองและสามมีการอัพเดท URL รวมมากกว่า 1,000 Rows ดังนั้น ยิ่งเว็บไซต์มีโพสและเพจมากเท่าไหร่ก็จะต้องมีการการอัพเดทมากขึ้นเท่านั้น ลองคิดเล่นๆ ถ้านั้งอัพเดททีละ Row คงใช้เวลาไม่น้อยเลยทีเดียว

Ok ครับตอนนี้เว็บไซต์บนชื่อ URL ใหม่ ก็พร้อมใช้งานและไม่มี Error มาให้กวนใจอีกต่อไป

แชร์ให้เพื่อนคุณ :
Layer 1