WordPress 搬家修改網址處理方式
本來認為應該很簡單可以解決, 但是發現還是有很多奇怪的地方, 記錄一下目前測試修改後正常運作的處理方式
- 原本網址為 www.abc.com 要更改成 www.xyz.com
- 將 /var/www/html 內的 wordpress 檔案全部複製到新網站內
- 將原本的 wordpress 資料庫匯出, 匯入新網站的 MySQL 內
1. 修改 wp-config.php
- 主要修改資料庫設定, 大概修改如下:
<?php define('DB_NAME', 'wordpress'); define('DB_USER', 'wordpress_user'); define('DB_PASSWORD', 'wordpress_password'); define('DB_HOST', 'localhost'); : // Single-Site (serves any hostname) // For Multi-Site, see: https://www.turnkeylinux.org/docs/wordpress/multisite define('WP_SITEURL', 'http://'.$_SERVER['HTTP_HOST']); define('WP_HOME', 'http://'.$_SERVER['HTTP_HOST']); :
- 很多文章說要改 WP_SITEURL 與 WP_HOME 但原本的設定似乎沒問題
2. 修改 DB 內的資料
- 主要是針對 wp_posts 這資料表的內容進行修正, 這樣就可以不需要後台針對每個頁面檢查與修改, SQL 語法如下:
UPDATE wp_posts SET post_content = REPLACE(post_content, 'www.abc.com', 'www.xyz.com') WHERE post_content LIKE '%www.abc.com%'; UPDATE wp_posts SET guid= REPLACE(guid, 'www.abc.com', 'www.xyz.com') WHERE guid LIKE '%www.abc.com%'; UPDATE wp_options SET option_value = REPLACE(option_value, 'www.abc.com', 'www.xyz.com') WHERE option_value LIKE '%www.abc.com%';
3. 進入後台更改切換指定首頁
- 因為主頁是指定靜態網頁, 所以系統在設定時會將原有的網址寫入資料庫, 導致移轉後主頁會自動跳至舊網址
- 進入後台 → 設置 → 閱讀 → 您的主页显示
- 切回 您的最新文章 → 保存更改
- 再切回 一個靜態頁面 → 指定主頁 (首頁) → 保存更改