เมื่อย้ายเว็บไซต์ WP เหตุใด wp-admin จึงเปลี่ยนเส้นทางไปยังไซต์เก่า


16

ฉันอยู่ในกระบวนการย้ายเว็บไซต์ WP จากโฮสต์หนึ่งไปยังอีก ฉันคัดลอกฐานข้อมูลและไฟล์ทั้งหมดสร้างฐานข้อมูลใหม่และนำเข้าไฟล์เก่า ฉันเปลี่ยนไฟล์ wp-config หน้าแรกแสดงได้ดี แต่เมื่อฉันพยายามเข้าถึง / wp-admin มันจะพาฉันกลับไปที่ไซต์เก่า

ไซต์ใหม่เป็นเซิร์ฟเวอร์ dev ที่ฉันวางแผนจะเปลี่ยนแปลงสไตล์ก่อนที่ฉันจะใช้ไซต์จริง

ฉันกำลังพลาดอะไรเกี่ยวกับการเปลี่ยนแปลงนี้? ฉันจะทำให้ไซต์ตอบสนองต่อ dev url ได้อย่างถูกต้องได้อย่างไร

คำตอบ:


22

หากนี่คือการติดตั้ง WordPress เดียวมีรายการฐานข้อมูลสองรายการที่มีโดเมนเก่าของคุณ โดยเฉพาะsiteurlและภายในhomewp_options

ที่กล่าวว่าหาก URL dev นั้นชั่วคราวคุณสามารถตั้งค่าคงที่สองค่าต่อไปนี้ในwp-config.php:

define('WP_HOME', 'http://' . $_SERVER['SERVER_NAME']);
define('WP_SITEURL', WP_HOME . '/');

โดยมีเงื่อนไขว่า WordPress ติดตั้งในรูทของเว็บไซต์ของคุณ


คุณจะต้องอัปเดตguidแต่ละรายการwp_postsในกรณีที่มีสิ่งที่แนบมาโดยใช้สิ่งที่ต้องการUPDATE wp_posts SET guid = REPLACE('<old_url>','<new_url>', guid)
Cyclonecode

2
ไม่ควรเปลี่ยน GUID อ่านเพิ่มเติมได้ที่นี่: codex.wordpress.org/Changing_The_Site_URL#Important_GUID_Note
NightHawk

4

มันไม่ใช่ปัญหาใหญ่ ฐานข้อมูลของคุณมีลิงค์ก่อนหน้าทั้งหมดซึ่งไม่สามารถแปลงได้โดยอัตโนมัติ การแก้ปัญหามีสองประเภทคือ:

  1. ในการwp-config.phpเพิ่มรหัสนี้:

    define ('WP_HOME', 'http: //'. $ _SERVER ['SERVER_NAME']);
    define ('WP_SITEURL', WP_HOME. '/');
  2. เปลี่ยน SQL ต่อไปนี้โดยแทนที่ "oldurl" ด้วยลิงก์ก่อนหน้าและ "newurl" ด้วยลิงก์ปัจจุบัน:

UPDATE wp_posts SET guid = replace(guid, 'oldurl','newUrl'); 

UPDATE wp_posts SET post_content = replace(post_content, 'oldurl', 'newUrl'); 

UPDATE wp_links SET link_url = replace(link_url, 'oldurl', 'newUrl'); 

UPDATE wp_links SET link_image = replace(link_image, 'oldurl', 'newUrl'); 

UPDATE wp_postmeta SET meta_value = replace(meta_value, 'oldurl', 'newUrl'); 

UPDATE wp_usermeta SET meta_value = replace(meta_value, 'oldurl', 'newUrl'); 

UPDATE wp_options SET option_value = replace(option_value, 'oldurl', 'newUrl') WHERE option_name = 'home' OR option_name = 'siteurl';

เรียกใช้แบบสอบถาม SQL wp_เหล่านี้ในฐานข้อมูลของคุณเปลี่ยนคำนำหน้าถ้าคุณมีบางสิ่งบางอย่างที่แตกต่างกว่า


2

เพียงแค่เปลี่ยน URL ของไซต์ในการกำหนดค่าจะไม่อัปเดตภายในทั้งหมดเพื่อสร้างไซต์ dev ที่ใช้งานได้สำหรับคุณ (เว้นแต่ว่าไซต์นั้นจะค่อนข้างเปลือยเปล่า) คุณจะมีปัญหากับข้อมูลที่ไม่ต่อเนื่องและลิงก์ภายในโพสต์ที่ชี้ไปยังไซต์เก่า

มันจะฉลาดกว่าหากใช้เครื่องมือย้ายข้อมูลเช่น Backup Buddy หรือ Duplicator เพื่อสร้างสำเนาสมบูรณ์ของไซต์ที่สามารถนำไปใช้งานได้อีกครั้งในตำแหน่งใหม่ด้วย URL ใหม่ การทำเช่นนี้คุณจะยังคงมีลิงก์ที่ใช้งานได้ภายในโพสต์ลิงก์ของเมนูที่กำหนดเองและอื่น ๆ การใช้วิธีใดวิธีหนึ่งต่อไปนี้จะทำให้การเปลี่ยนแปลงของคุณง่ายขึ้นเช่นกัน เพียงบรรจุมันทั้งหมดและนำไปใช้กับไซต์การผลิตของคุณอีกครั้งเมื่อเสร็จสิ้น

หากคุณไม่ต้องการใช้เวลาในการดาวน์โหลด / อัปโหลดทุกอย่างอีกครั้งคุณสามารถโอนย้ายฐานข้อมูลโดยใช้บางสิ่งเช่น WP Migrate DB ติดตั้งบนไซต์ที่ใช้งานจริงของคุณส่งออกฐานข้อมูลด้วย URL ใหม่และนำเข้าฐานข้อมูลที่ย้ายไปยัง dev ของคุณผ่าน phpMyAdmin หรือที่คล้ายกัน ลิงก์ฮาร์ดโค้ดในชุดรูปแบบของคุณจะยังคงต้องได้รับการอัปเดตและ. htaccess ของคุณจะต้องได้รับการอัปเดตหากคุณติดตั้งในโฟลเดอร์ย่อย

เปลี่ยนบรรทัด RewriteBase เป็น:

RewriteBase /yourfolder/

และบรรทัดที่เปลี่ยนเส้นทางไปยัง index.php ของคุณไปที่:

RewriteRule . /yourfolder/index.php [L]

0

คุณต้องเปลี่ยนที่อยู่เว็บไซต์ (URL) และที่อยู่ WordPress (URI) ผ่านแผงการดูแลก่อนที่จะย้ายเว็บไซต์ไปยัง URL อื่น

ในกรณีของคุณคุณไม่สามารถทำเช่นนั้นกับไซต์สดได้ดังนั้นคุณสามารถลองใช้เครื่องมือเช่นค้นหาและแทนที่ฐานข้อมูลเพื่อเปลี่ยน URL จากฐานข้อมูลไซต์ dev

คุณยังสามารถอ้างอิงการย้าย WordPress


0
  1. phpMyAdmin: ไปที่wp_optionsชุดโต๊ะhomeurlและsiteurlเป็น URL ใหม่ของคุณ
  2. ลงชื่อเข้าใช้wp-adminแดชบอร์ดของคุณไปเพื่อsetting->general เปลี่ยนที่อยู่ WordPress (URL) และที่อยู่ไซต์ (URL)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.