ปรกติจะไม่ยุ่งยากขนาดนี้ แต่ข้อมูลเก่ามันเยอะ และ link ไปหลายที่เลยต้องทำ redirect ไว้ซักหน่อย และ จดไว้กันลืม
- Back up ข้อมูลต่างๆ ที่สำคัญ เช่น wp-content/uploads/, wp-content/theme/, wp-content/plugins/, .htaccess, wp-config.php และ database ไว้ก่อน
- สร้าง blog ไว้ที่ url ใหม่แล้ว (อันเดิมใช้ wordpress Version 2.9.1 อันใหม่เป็น Version 2.9.2 ไม่ต่างกันมากเท่าไหร) เอา db ลงซะ
- Copy wp-config.php เดิม มาแก้นิดหน่อยเช่น db-username, password และใส่ใน blog ใหม่
- แก้ข้อมูลใน database ที่ link ไปที่ blog เก่า โดยใช้ function replace ของ mysql เช่น
UPDATE `wp_options` SET `option_value` = REPLACE(`option_value`,’v6hp.in.th’,'blog.v6hp.in.th’);
UPDATE `wp_comments` SET `comment_author_url` = REPLACE(`comment_author_url`,’v6hp.in.th’,'blog.v6hp.in.th’);
UPDATE `wp_posts` SET `guid` = REPLACE(`guid`,’v6hp.in.th’,'blog.v6hp.in.th’);
UPDATE `wp_posts` SET `post_content` = REPLACE(`post_content`,’v6hp.in.th’,'blog.v6hp.in.th’);
UPDATE `wp_postmeta` SET `meta_value` = REPLACE(`meta_value`,’/var/www/sites/v6hp/v6hp.in.th/subdomains/www/html/wp-content/uploads/’,”); - upload wp-content/uploads/, wp-content/theme/, wp-content/plugins/, .htaccess กลับเข้าไปใน site ใหม่
- แก้ .htaccess ของ site เก่าให้ redirect ไปที่ site ใหม่ทั้งหมด (ผมเอาฉพาะที่เกี่ยวกับ blog และ post ล่าสุดคือ Blog moved to …) RewriteRule ชุดแรกเพื่อ check Blog moved to … ให้ไปที่ url ใหม่ ส่วนชุดที่สองคือ check url ที่ขึ้นต้นด้วย category reference, tag และปี โดยผมเอา prefix พวกนี้มาจาก sitemap.xml
<IfModule mod_rewrite.c>
RewriteEngine On
Options +FollowSymLinks
RewriteBase /
RewriteRule ^relax/blog-moved-to-blog-v6hp-in-th/$ http://blog.v6hp.in.th/
RewriteRule ^(wp-content|2008|2009|2010|about|author|category|myd-i-y|myexperiment|myknowledge|mymelody|one-day-one-blog|relax|tag|webdesign)/(.*)$ http://blog.v6hp.in.th/$1/$2 [R=301,L]
</IfModule> - ลัลลากับ blog ใหม่