搞定 WordPress Multisite 不是夢!從零到一的終極架設教學 (含 Subdomain vs. Subdirectory 深度解析)
嗨,我是浪花科技的 Eric。身為一個整天跟程式碼和伺服器打交道的工程師,我最受不了的事情之一就是「重複做工」。想像一下,你手上有五個、十個,甚至更多的 WordPress 網站要管理,光是想到要一個一個登入、更新外掛、更新主題、處理使用者,我的頭就開始痛了。這不僅浪費時間,也大幅增加了出錯的風險。
如果你跟我一樣,對這種重複性的惡夢感到厭煩,那麼 WordPress Multisite(多站網路)就是你的救贖。這篇文章,我會以工程師的視角,帶你從零開始,一步步完成 WordPress 多站網路(Multisite)架設教學,並且深入剖析那個最讓人頭痛的抉擇:子網域 (Subdomain) vs. 子目錄 (Sub-directory)。準備好了嗎?泡杯咖啡,我們開始吧!
什麼是 WordPress Multisite?它到底解決了什麼痛點?
簡單來說,WordPress Multisite 允許你用「一個」WordPress 核心安裝,來管理「多個」網站。這些網站共享同一套 WordPress 檔案、同一個資料庫、同樣的外掛和佈景主題,但各自擁有獨立的媒體庫、文章、頁面和使用者設定。你可以想像成你是一棟公寓大樓的超級管理員,可以總覽所有住戶(子網站),但每個住戶有自己的獨立空間。
Multisite 的核心優勢:
- 集中式管理:這絕對是最大的好處。身為「網路管理員」(Super Admin),你可以在一個儀表板上更新所有網站的核心、外掛和主題。新增使用者、管理權限也變得輕而易舉,再也不用切換幾十個瀏覽器分頁了。
- 效率與一致性:當所有網站都使用相同的主題或一套核心外掛時,Multisite 能確保版本的一致性,減少因版本不同步而產生的奇怪問題。對開發者來說,維護和部署都省事很多。
- 資源共享:由於共享核心檔案,相較於安裝數十個獨立的 WordPress,Multisite 在伺服器空間上會更節省一些。
當然,它不是萬靈丹(工程師的囉嗦時間):
Multisite 很強大,但它也有一些限制。所有網站共享資源,代表如果主程式或資料庫掛了,所有子網站都會一起陪葬。此外,不是所有的外掛都完美支援 Multisite 環境,有些可能會水土不服。所以,在決定導入前,務必評估你的需求,它比較適合有共同基礎、需要集中管理的網站群,例如:
- 企業底下不同部門或地區的網站。
- 學校為各系所或社團建立的部落格平台。
- 開發者為客戶提供規格化的網站解決方案。
決戰十字路口:Subdomain (子網域) vs. Sub-directory (子目錄) 該怎麼選?
這是啟用 Multisite 前最關鍵,也幾乎是「無法回頭」的一個決定。一旦選定並開始新增子網站,要再切換就會非常痛苦。所以,請務必搞懂兩者的差異。
1. 子網域 (Subdomains) 模式
- 網址結構:
subsite.yourdomain.com - 看起來像什麼:
blog.roamer-tech.com,shop.roamer-tech.com - 優點:每個子網站看起來都像一個獨立的個體,有利於品牌區隔。從 SEO 的角度來看,搜尋引擎會將它們視為關聯但略有區別的網站。
- 缺點:設定比較麻煩。你必須在你的主機或 DNS 供應商那裡設定「萬用字元 DNS 紀錄」(Wildcard DNS Record)。此外,SSL 憑證也需要使用萬用字元憑證 (Wildcard SSL),否則每個子網域都要獨立申請憑證,會搞死人。
- 適用情境:品牌差異大的多個網站、給不同客戶使用的平台、SaaS 服務。
2. 子目錄 (Sub-directories) 模式
- 網址結構:
yourdomain.com/subsite - 看起來像什麼:
roamer-tech.com/blog,roamer-tech.com/case-study - 優點:設定超級簡單!你不需要碰任何 DNS 設定,SSL 憑證也能直接沿用主網域的。對於 SEO 來說,子網站可以繼承主網域的權重,有利於新網站的初期發展。
- 缺點:所有網站都在同一個網域下,品牌區隔較不明顯。網址結構可能會變得比較長。
- 適用情境:同一個企業下的不同內容區塊(如部落格、作品集)、多國語言網站、內部部門網站。
Eric 的良心建議:如果你不確定,或是沒有伺服器管理權限去設定 Wildcard DNS,那就選「子目錄」。它最單純、最不容易出錯。對於大多數中小企業或內容網站來說,子目錄模式已經綽綽有餘。
WordPress Multisite 架設教學:手把手實戰攻略
理論講完了,我們來動手吧!請嚴格按照以下步驟操作,特別是第一步,跳過的人我見多了,後來出問題回來求救的也一樣多。
步驟一:備份!備份!備份!(重要的事說三遍)
在對你的 WordPress 網站進行任何核心檔案修改前,請務必完整備份你的網站檔案和資料庫。你可以使用主機後台的備份功能,或是像 UpdraftPlus 這樣的外掛。同時,請「停用」你網站上所有的外掛,這可以避免在安裝過程中發生未知的衝突。
步驟二:在 `wp-config.php` 中啟用 Multisite
透過 FTP 或主機的檔案管理器,找到你 WordPress 安裝根目錄下的 `wp-config.php` 檔案。在 /* That's all, stop editing! Happy publishing. */ 這行註解的「上方」,加入以下這行程式碼:
define( 'WP_ALLOW_MULTISITE', true );
儲存檔案並上傳。這個動作就像是告訴 WordPress:「嘿,我準備好要啟用多站網路功能了,請把設定選項顯示出來。」
步驟三:進行網路設定
儲存完 `wp-config.php` 後,重新整理你的 WordPress 後台。接著到「工具」>「網路設定」。
在這裡,你會看到選擇「子網域」或「子目錄」的選項。系統會根據你的網站狀況(例如是否已經上線超過一個月)給予建議。給你的網路取個名字,輸入你的管理員信箱,然後點擊「安裝」。
步驟四:再次修改 `wp-config.php` 與 `.htaccess`
安裝後,WordPress 會給你兩段程式碼,並清楚指示你貼到哪裡。這是最關鍵的一步,千萬不要搞錯。
1. 將程式碼新增至 `wp-config.php`
這段程式碼會長得像這樣(你的會有些許不同),一樣是貼在 /* That's all, stop editing! Happy publishing. */ 的上方:
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false); // 如果你選子網域,這裡會是 true
define('DOMAIN_CURRENT_SITE', 'yourdomain.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
這段程式碼正式定義了你的網路結構,告訴 WordPress 誰是主站、採用哪種模式。
2. 將程式碼新增至 `.htaccess`
WordPress 給的第二段程式碼,需要用來「取代」你現有 `.htaccess` 檔案裡面的所有內容。`.htaccess` 同樣位在 WordPress 根目錄。它看起來會像這樣:
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
囉嗦一下,這段 Rewrite Rules 的作用是攔截所有連到你網站的請求,然後交給 WordPress 的 `index.php` 處理。`index.php` 會根據網址(例如 `yourdomain.com/site2/some-post`)去判斷這個請求應該由哪個子網站來回應。這就是 Multisite 不需為每個子站建立實體資料夾也能運作的魔法。
步驟五:重新登入,大功告成!
儲存好這兩個檔案後,WordPress 會要求你重新登入。登入後,你會發現左上角的管理列多了一個「我的網站」選單,裡面有一個「網路管理員」的儀表板。恭喜你,你已經成功架設了 WordPress Multisite!現在你可以從網路管理員儀表板去新增網站、安裝全網路共用的外掛與主題了。
啟用後常見問題與除錯 (工程師的避坑指南)
- 子網域模式網站無法顯示?九成九是 Wildcard DNS 沒設定好。請到你的 DNS 管理後台,新增一筆 A 紀錄,主機名稱填
*,IP 指向你的伺服器 IP。 - 無法登入子網站後台?有時候是 Cookie 的問題,試著在 `wp-config.php` 加入
define('COOKIE_DOMAIN', '');看看。 - 外掛無法啟用?有些外掛需要「網路啟用」(Network Activate),有些則可以由各子網站管理員自行啟用。請到網路管理員的外掛頁面進行設定。
- SSL 憑證錯誤?子網域模式請務必使用萬用字元 SSL 憑證 (Wildcard SSL Certificate),例如
*.yourdomain.com,才能保護所有未來新增的子網站。
架設 WordPress Multisite 雖然比單一站點多了幾個步驟,但一旦設定完成,它為管理多個網站帶來的便利性是無可取代的。它是一個強大的工具,但也需要更謹慎的規劃與管理。希望這篇詳細的教學能幫助你順利踏出第一步。
延伸閱讀
- 一人管百站不是夢!WordPress Multisite 終極指南,從架設到管理的實戰攻略
- 終結滑鼠手!資深工程師的 WP-CLI 神兵利器,讓你的 WordPress 管理效率原地起飛!
- 告別「在我電腦明明可以跑」的惡夢:WordPress Docker 容器化部署終極教學
如果你在設定過程中遇到任何棘手的問題,或是你的企業有多個網站,正在評估導入 Multisite 的可行性,需要專業的技術諮詢與協助,歡迎隨時聯繫浪花科技。我們團隊擁有豐富的 WordPress Multisite 架構與維護經驗,可以為你提供最適合的解決方案。
常見問題 (FAQ)
Q1: WordPress Multisite 和多個獨立 WordPress 網站有什麼根本上的不同?
最根本的不同在於「管理核心」。Multisite 使用單一 WordPress 核心檔案和單一資料庫來管理所有網站,更新和外掛管理是集中式的。而多個獨立網站則各有各的核心檔案與資料庫,所有管理操作都需要獨立進行,雖然隔離性較好,但管理成本呈倍數增長。
Q2: 我可以將現有的獨立網站匯入到 Multisite 網路中嗎?
可以,但過程比較複雜。你需要手動匯出舊站的內容 (文章、頁面、媒體等),然後在新建立的子網站中匯入。更進階的作法會涉及到直接操作資料庫,將舊站的資料表 (tables) 複製並修改前綴 (prefix) 來整合進 Multisite 的資料庫。這通常需要專業工程師協助,以避免資料遺失或毀損。
Q3: 子網域 (Subdomain) 和子目錄 (Sub-directory) 的選擇可以事後更改嗎?
技術上「可以」,但非常非常麻煩且不建議。這會涉及到修改資料庫中所有子網站的 URL、設定 301 轉址以避免 SEO 災難,以及處理伺服器設定的變更。基本上,這是一個高風險的操作,最好在一開始就做好決定,避免日後需要進行這種大手術。
Q4: Multisite 會不會拖慢網站效能?
不一定。如果你的主機資源充足,且網路中的外掛使用得當,Multisite 的效能表現與單一站點不會有太大差異。但反過來說,如果網路中有一個子網站因為外掛寫得不好或流量暴增而耗盡伺服器資源(如 CPU 或記憶體),它會影響到「整個網路」的所有網站。因此,在 Multisite 環境中,選擇優質的主機和謹慎評估外掛更為重要。






