WordPress 多站網路(Multisite):子網域與子目錄 2 種架構

測試環境 RHEL 系列AlmaLinux 9.8Nginx + ApacheWordPress 7.1.32026-10-27 確認

WordPress 多站網路(WordPress Multisite)是以一套 WordPress 安裝將多個網站組成網路並集中管理的功能。我們在 Nginx + Apache 架構的 WordPress 上,從多站網路組態畫面啟用多站網路並新增一個子網站,確認了選單路徑與要加入設定檔的程式碼行。

1️⃣ WordPress 多站網路與多站網路管理中心

  • ↪️ 一套安裝,多個網站

在多站網路中,網路裡的所有網站共用一套 WordPress 安裝。核心檔案、外掛與佈景主題也共用,因此伺服器上不會為每個網站各建一個 WordPress 資料夾。

每個網站各自獨立的是資料庫資料表與媒體上傳資料夾,只有使用者資料表由整個網路共用。第一個網站使用原有的 [/wp-content/uploads/],從下一個網站起,各網站使用 [/wp-content/uploads/sites/] 下以網站編號命名的資料夾。

管理整個網路的使用者是多站網路管理員(Super Admin)。多站網路管理中心畫面在建立網路後才會出現,且只對多站網路管理員顯示。

使用者以網路帳號建立,但必須在各網站取得角色後才能進入該網站。網站管理員的權限也會縮小,安裝佈景主題與外掛、編輯其他使用者的個人資料,只有多站網路管理員能做。

在下方圖表中,可以看到一套安裝如何經由網路分成多個網站,以及各網址方式下的網站網址。

🧭 多站網路架構與網址方式
說明圖解
🧩 架構
🌐 網址方式
📦 一套 WordPress 安裝一套核心檔案
🌐 網路多站網路管理員
🗂️ 多個網站
主要網站編號 1/wp-content/uploads/example.comexample.com
site1編號 2/wp-content/uploads/sites/2/site1.example.comexample.com/site1
site2編號 3/wp-content/uploads/sites/3/site2.example.comexample.com/site2
🔗 整個網路共用
核心檔案外掛佈景主題使用者資料表
📁 各網站獨立
文章設定媒體
🌐 子網域網址
https://site1.example.com/
wp-config.php · SUBDOMAIN_INSTALL = true
🌐 子目錄網址
https://example.com/site1/
wp-config.php · SUBDOMAIN_INSTALL = false
主要網站文章網址 · https://example.com/blog/hello-world/
核心檔案、外掛、佈景主題與使用者資料表由整個網路共用,文章、設定與媒體則各網站分開儲存。
子網域方式下,每個網站使用 site1.example.com 格式的網址,wp-config.php 的 [SUBDOMAIN_INSTALL] 值為 true。
子目錄方式下,網站使用 example.com/site1 格式的網址,[SUBDOMAIN_INSTALL] 值為 false。主要網站的文章網址會加上 [/blog/]。

2️⃣ 子網域與子目錄的差異:網址格式與選擇限制

進行多站網路組態時,要在子網域與子目錄之間選一種網站網址方式。子網域是 site1.example.com 格式的網址,子目錄(子資料夾)是 example.com/site1 格式的網址。

項目子網域子目錄
網站網址site1.example.comexample.com/site1
官方文件中的名稱以網域為準(domain-based)以路徑為準(path-based)
伺服器端準備在 DNS 與伺服器上將子網域指向 WordPress 安裝資料夾永久連結可正常運作就不需額外設定
使用者自行建立網站時需要萬用字元子網域沒有額外條件
無法選擇的情況WordPress 位址含有路徑,或為 localhost、IP 位址時有文章發布超過一個月的網站
主要網站文章網址沒有變化文章網址前加上 /blog/

子目錄方式在永久連結可正常運作的伺服器上不需另外設定,但網站若有發布超過一個月的文章,就無法選擇。這項限制是為了避免既有文章網址與新網站網址衝突,因此這類網站會以子網域方式安裝。

子目錄多站網路的主要網站,文章網址會加上 [/blog/]。這是為了不與子網站網址重疊,頁面網址則不會加上。

之後若要變更已選的方式,需要經過好幾個步驟。依官方文件,只改 [SUBDOMAIN_INSTALL] 值與重寫規則並不會搬移既有網站的網址,DNS 與憑證也必須另外設定。

3️⃣ 多站網路組態前的準備:備份、永久連結與伺服器條件

多站網路組態會變更既有網站的檔案與資料庫,因此官方文件建議若不是剛安裝好的網站,要先備份。

備份資料庫與檔案,確認永久連結可正常運作後,停用所有已啟用的外掛。外掛在建立網路後再重新啟用。

如果打算讓 WordPress 改在專屬資料夾中運作,要在啟用多站網路前完成。若以子網域方式使用 www 網址,請讓 [WordPress 位址 (網址)] 與 [網站位址 (網址)] 一致,網域變更也要在組態前完成。

WordPress 位址若帶有 :80 或 :443 以外的連接埠號碼,就無法建立網路。

伺服器必須能處理多站網路用的重寫規則,Apache 則需要 mod_rewrite。

在 Nginx + Apache 架構中,Nginx 會把請求轉給 Apache,由 Apache 讀取 .htaccess。以多站網路組態畫面顯示的規則替換 .htaccess 後,子網站網址就能開啟,Nginx 端沒有另外加入規則。

只使用 Nginx 的伺服器不會由 WordPress 產生重寫規則,因此必須把官方文件中的 Nginx 設定直接加入伺服器設定檔。

在共享主機這類無法自行變更伺服器設定的環境中,萬用字元子網域等條件需要與主機業者協調(依官方文件)。

4️⃣ 多站網路組態步驟

  • ↪️ WP_ALLOW_MULTISITE 與多站網路組態畫面

加入 wp-config.php 的 [WP_ALLOW_MULTISITE] 常數只會顯示 [工具] › [多站網路組態] 選單,光靠它並不會啟用多站網路。網路要在該畫面完成安裝,並把畫面上的程式碼行加入 wp-config.php 與 .htaccess 後才會啟用。

開啟 wp-config.php,在結束編輯註解的上方加入一行,將 [WP_ALLOW_MULTISITE] 定義為 true。結束編輯註解就是 /* That’s all, stop editing! Happy publishing. */ 這一行,儲存後重新整理瀏覽器。

define( 'WP_ALLOW_MULTISITE', true );

重新整理後,[工具] 選單的 [清除個人資料] 下方會加入 [多站網路組態],點選這個選單就會開啟 [建立 WordPress 網站的多站網路] 畫面。

多站網路組態畫面:左側工具選單中的多站網路組態 · 安裝於子目錄 · 伺服器位址 · 多站網路標題 · 多站網路管理員電子郵件地址 · 安裝按鈕

安裝在子資料夾的 WordPress 不會出現選擇網址方式的欄位,只顯示 [安裝於子目錄] 這一列。該列的文字為 [由於這個多站網路安裝於子目錄中,因此這個 WordPress 多站網路中的網站必須使用子目錄方式建立。]

確認 [多站網路標題] 與 [多站網路管理員電子郵件地址] 後,按下 [安裝]。

依官方文件,在可以選擇網址方式的安裝中選了子網域,就會顯示萬用字元 DNS 的提示,這項條件只有使用者自行建立網站的網路才需要。

安裝後的畫面會顯示依該網站產生的 wp-config.php 程式碼行與 .htaccess 規則。先備份這兩個檔案,把程式碼行貼到 wp-config.php 的 [WP_ALLOW_MULTISITE] 那一行下方,.htaccess 則以新規則取代原有的 WordPress 規則。

安裝後的多站網路組態畫面:wp-config.php 的多站網路組態規則 · .htaccess 的多站網路組態規則 · 登入連結

安裝後畫面的說明中,結束編輯註解會翻譯成管理後台的語言顯示,但 wp-config.php 裡的註解仍是英文。

加入 wp-config.php 的是包含 [MULTISITE] 與 [SUBDOMAIN_INSTALL] 在內的六個常數。[SUBDOMAIN_INSTALL] 值在子網域時為 true,子目錄時為 false。

[DOMAIN_CURRENT_SITE] 與 [PATH_CURRENT_SITE] 填入該網站的網域與安裝路徑。下方是以子目錄方式安裝在 example.com 根目錄時的程式碼行。

define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false );
define( 'DOMAIN_CURRENT_SITE', 'example.com' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

同樣的情況下,.htaccess 的 WordPress 規則改成下方內容,[RewriteBase] 那一行填入安裝路徑。

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]

儲存兩個檔案後,用畫面上的 [登入] 連結重新登入,管理工具列的 [我的網站] 下方就會出現 [多站網路管理中心]。若無法登入,請清除瀏覽器快取與 Cookie 後再登入。

我的網站選單畫面:管理工具列的我的網站 › 多站網路管理中心 › 控制台 · 網站 · 使用者 · 佈景主題 · 外掛 · 設定

[多站網路管理中心] 有控制台、網站、使用者、佈景主題、外掛、設定六個選單,點選 [網站] 就會開啟網路中的網站清單。

多站網路管理中心的網站畫面:主要網站與一個子網站共兩筆的清單 · 標題旁的新增網站按鈕

子網站可從清單標題旁的 [新增網站],或左側的 [網站] › [新增網站] 新增。

新增網站畫面:網站位址 (網址) · 網站標題 · 網站介面語言 · 網站管理員電子郵件地址 · 新增網站按鈕

[網站位址 (網址)] 只能填入小寫字母、數字與連字號,[網站管理員電子郵件地址] 若不在資料庫中,就會建立新使用者。

新增一個子網站後,上傳資料夾中出現了 [sites/2] 資料夾,資料庫則多了 10 個像 [wp_2_] 這樣在前置詞後加上網站編號的資料表。

子網站的永久連結不會沿用主要網站的設定,而是從含有年、月、日與文章名稱的預設結構開始,因此要在子網站的永久連結設定中另外指定。

在下方模擬器中,可以依序點選從 [工具] › [多站網路組態] 到 [新增網站] 的路徑。

🧭 WordPress 多站網路組態模擬器
wp-admin路徑模擬器
도구›네트워크 설치
My Site
워드프레스 사이트의 네트워크 만들기

네트워크 설치 절차에 오신 것을 환영합니다!

아래의 정보를 채우고 워드프레스 사이트의 네트워크를 만들 수 있습니다. 다음 단계에서 구성 파일을 만들 것입니다.

경고: 이 설치의 끝에 사용할 아파치 mod_rewrite 모듈을 설치했는지 확인하기 바랍니다.
네트워크 세부사항
하위 디렉터리 설치하기
설치가 디렉터리에 있기에, 워드프레스 네트워크의 사이트는 하위 디렉터리를 사용해야만 합니다.
서버 주소
네트워크의 인터넷 주소는 example.com이(가) 될 것입니다.
네트워크 제목
My Site 사이트네트워크를 무엇으로 부르는 것이 좋을까요?
네트워크 관리자 이메일
you@example.com이메일 주소입니다.
My Site
워드프레스 사이트의 네트워크 만들기
네트워크 활성화하는 중

다음 단계를 완료하여 사이트의 네트워크 만들기 기능을 활성화하세요.

주의: 기존의 wp-config.php 및 .htaccess 파일을 백업 해야합니다.
  1. /var/www/html/wp/의 wp-config.php파일에 /* 그게 다입니다. 편집을 멈추세요! 즐겁게 발행하세요. */행 위에 다음을 추가합니다:
    wp-config.php에 대한 네트워크 환경설정 규칙
    define( 'MULTISITE', true );
    define( 'SUBDOMAIN_INSTALL', false );
    define( 'DOMAIN_CURRENT_SITE', 'example.com' );
    define( 'PATH_CURRENT_SITE', '/wp/' );
    define( 'SITE_ID_CURRENT_SITE', 1 );
    define( 'BLOG_ID_CURRENT_SITE', 1 );
  2. 다른 워드프레스 규칙을 교체하는 /var/www/html/wp/의 .htaccess 파일에 다음을 넣습니다:
    .htaccess에 대한 네트워크 환경설정 규칙
    RewriteEngine On
    RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    RewriteBase /wp/
    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]

이 단계를 완료하고나면, 네트워크를 활성화하고 구성합니다. 다시 로그인해야 합니다.

내 사이트My Site
네트워크 관리자My Site
알림판사용자테마플러그인설정
알림판
내 사이트My Site
사이트
URL등록됨사용자
example.com/wp — 메인편집 | 알림판 | 방문2026/10/271
내 사이트My Site
사이트 추가하기
사이트 주소 (URL) *
example.com/wp/site1소문자(a-z), 숫자, 그리고 하이픈만 허용합니다.
사이트 제목 *
Site 1
사이트 언어
한국어
관리자 이메일 *
you@example.com

위의 이메일 주소가 데이터베이스에 없으면 새 사용자를 만들 것입니다.
비밀번호를 설정하는 사용자 이름과 링크를 이 이메일 주소로 보낼 것입니다.

5️⃣ 不適合多站網路的情況

  • ↪️ 網站之間共用資料與使用者

多站網路適合像各地區網站這樣共用佈景主題與外掛、內容分開經營的情況。若網站之間需要緊密共用資料或使用者,官方文件指出多站網路可能不是最好的方法。

如果只是要讓設計看起來不同,可以在單一網站上用切換佈景主題或樣式表的外掛解決。各使用者群組只需看到不同資訊的情況,也能在單一網站上用變更權限與選單的外掛處理。

也請先確認正在使用的外掛。外掛目錄中的外掛並非都能在多站網路上運作,因此官方文件建議到外掛頁面或向開發者確認是否支援。

🔢 FAQ & 推薦內容

從 WordPress 4.5 起,網域對應成為多站網路的基本功能,因此可以替子網站連結 example2.com 這類獨立網域。依官方文件,這時同樣要把網域的 DNS 指向伺服器 IP,並設定伺服器把該網域送到 WordPress 安裝資料夾。

從 [多站網路管理中心] 的外掛畫面安裝的外掛,可以逐一在各網站啟用,或用 [於多站網路中啟用] 一次在所有網站啟用。於多站網路中啟用的外掛,會在各網站的外掛清單中顯示為 [已於多站網路中啟用],網站管理員無法停用。佈景主題即使在多站網路中啟用,也不會變更各網站的佈景主題,只會加入各網站可選擇的清單。

核心、佈景主題與外掛檔案由網路共用,因此在 [多站網路管理中心] 的更新畫面更新一次即可。更新核心後執行 [升級多站網路],會以每次五個網站的方式依序套用各網站的資料庫變更。

ℹ️ 聯盟行銷說明
本站內容包含聯盟行銷連結。訪客透過這些連結購買商品或服務時,本站會從賣家獲得佣金。在這個過程中,購買者支付的金額(遇到活動折扣時金額會降低↓)並不會因此提高。刊登的價格、折扣與庫存資訊以撰寫當時為準,可能與實際情況不同,購買前請向賣家做最後確認。商品的挑選與評價依本站自訂的標準撰寫,是否支付佣金不會影響介紹順序或評價內容。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Prove your humanity: 10   +   9   =