WordPress マルチサイト: サブドメインとサブディレクトリの2つの構成

テスト環境 RHEL系AlmaLinux 9.8Nginx + ApacheWordPress 7.1.32026-10-27 確認

WordPress マルチサイト(WordPress Multisite)は、1つの WordPress インストールで複数のサイトをネットワークにまとめて管理する機能です。Nginx + Apache 構成の WordPress でサイトネットワークの設置画面からマルチサイトを有効にし、サブサイトを1つ追加して、メニューの場所と設定ファイルに入る行を確認しました。

1️⃣ WordPress マルチサイトとサイトネットワーク管理

  • ↪️ 1つのインストールに複数のサイト

マルチサイトでは、1つの WordPress インストールをネットワーク内のすべてのサイトが共同で使います。コアファイルとプラグイン、テーマも共有するため、サーバーにサイトごとの WordPress フォルダーはできません。

サイトごとに別々にできるのは、データベースのテーブルとメディアのアップロードフォルダーで、ユーザーテーブルだけはネットワーク全体で共有します。最初のサイトは既存の [/wp-content/uploads/] を、次のサイトからは [/wp-content/uploads/sites/] の中のサイト番号フォルダーを使います。

ネットワーク全体を管理するユーザーは特権管理者(Super Admin)です。サイトネットワーク管理の画面はネットワークを作成した後にでき、特権管理者にだけ表示されます。

ユーザーはネットワークのアカウントとして作られますが、各サイトで権限グループを割り当てられて初めて、そのサイトにアクセスできます。サイト管理者の権限も縮小され、テーマとプラグインのインストールや、ほかのユーザーのプロフィール編集は特権管理者だけが行えます。

下の図で、1つのインストールがネットワークを通って複数のサイトに分かれる構成と、アドレス方式ごとのサイトアドレスを確認できます。

🧭 マルチサイトの構成とアドレス方式
解説ダイアグラム
🧩 構成
🌐 アドレス方式
📦 WordPress インストール1つコアファイル1つ
🌐 ネットワーク特権管理者
🗂️ 複数のサイト
メインサイト番号 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 アドレスのとき公開から1か月を過ぎた投稿があるサイト
メインサイトの投稿アドレス変化なし投稿アドレスの前に /blog/ を追加

サブディレクトリ方式は、パーマリンクが動くサーバーなら特に設定することはありませんが、公開から1か月を過ぎた投稿があるサイトでは選べません。既存の投稿アドレスと新しいサイトのアドレスがぶつかるのを防ぐための制限で、こうしたサイトはサブドメイン方式で設置することになります。

サブディレクトリのネットワークのメインサイトでは、投稿アドレスに [/blog/] が追加されます。サブサイトのアドレスと重ならないようにするための構成で、固定ページのアドレスには追加されません。

一度決めた方式を後で変えるには、いくつもの手順が必要です。公式ドキュメントによると、[SUBDOMAIN_INSTALL] の値と書き換えルールを変えるだけでは既存のサイトのアドレスは移らず、DNS と証明書も別に設定する必要があります。

3️⃣ サイトネットワーク設置前の準備: バックアップとパーマリンク、サーバーの条件

サイトネットワークの設置は既存サイトのファイルとデータベースを変える作業なので、公式ドキュメントは新しくインストールしたサイトでなければ先にバックアップするよう案内しています。

データベースとファイルをバックアップし、パーマリンクが動いていることを確認してから、有効なプラグインをすべて無効化します。プラグインはネットワークを作成した後に再び有効化します。

WordPress を専用のフォルダーで動かすように変える予定なら、マルチサイトを有効にする前に済ませます。サブドメイン方式で www アドレスを使う場合は [WordPress アドレス (URL)] と [サイトアドレス (URL)] を同じにそろえ、ドメインの変更も設置前に終えます。

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 のルールが表示されます。2つのファイルをバックアップし、wp-config.php では [WP_ALLOW_MULTISITE] の行の下に貼り付け、.htaccess は既存の WordPress のルールを新しいルールに置き換えます。

サイトネットワークの設置画面: 設置後の wp-config.php のネットワーク設定ルール · .htaccess のネットワーク設定ルール · ログインリンク

設置後の画面の案内では編集終了のコメントが管理画面の言語に翻訳されて表示されますが、wp-config.php の中のコメントは英語のままです。

wp-config.php に追加される行は、[MULTISITE] と [SUBDOMAIN_INSTALL] をはじめとする6つの定数です。[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]

2つのファイルを保存してから画面の [ログイン] リンクで再びログインすると、管理バーの [参加サイト] の下に [サイトネットワーク管理] ができます。ログインできない場合は、ブラウザーのキャッシュと Cookie を削除してから再びログインします。

参加サイトメニュー画面: 管理バーの参加サイト › サイトネットワーク管理 › ダッシュボード · サイト · ユーザー · テーマ · プラグイン · 設定

[サイトネットワーク管理] にはダッシュボード、サイト、ユーザー、テーマ、プラグイン、設定の6つのメニューがあり、[サイト] を押すとネットワークのサイト一覧が開きます。

サイトネットワーク管理のサイト画面: メインサイトとサブサイトの2件の一覧 · タイトル横のサイトを追加ボタン

サブサイトは一覧タイトル横の [サイトを追加] か、左の [サイト] › [サイトを追加] から追加します。

サイトを追加画面: サイトアドレス (URL) · サイトのタイトル · サイトの言語 · 管理者メールアドレス · サイトを追加ボタン

[サイトアドレス (URL)] には小文字と数字、ハイフンだけを入力でき、[管理者メールアドレス] がデータベースにないアドレスなら新しいユーザーが作成されます。

サブサイトを1つ追加すると、アップロードフォルダーに [sites/2] フォルダーができ、データベースには [wp_2_] のように接頭辞の後にサイト番号が付いたテーブルが10個追加されました。

サブサイトのパーマリンクはメインサイトの設定に従わず、年・月・日と投稿名が入った基本の構造から始まるため、サブサイトのパーマリンク設定で別に決めます。

下のシミュレーターで、[ツール] › [サイトネットワークの設置] から [サイトを追加] までの画面を順に押して確かめられます。

🧭 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 のインストールフォルダーに送るように設定します。

[サイトネットワーク管理] のプラグイン画面でインストールしたプラグインは、サイトごとに有効化するか、[サイトネットワークで有効化] ですべてのサイトに一度に有効化します。ネットワークで有効化したプラグインは各サイトのプラグイン一覧に [サイトネットワークで有効] と表示され、サイト管理者は無効化できません。テーマはネットワークで有効化しても各サイトのテーマは変わらず、サイトで選べる一覧に追加されるだけです。

コアとテーマ、プラグインのファイルはネットワークで共有しているため、[サイトネットワーク管理] の更新画面で一度更新します。コアを更新した後は [サイトネットワークをアップグレード] を実行し、各サイトのデータベースの変更を5サイトずつ順に適用します。

ℹ️ 提携について
当サイトのコンテンツにはアフィリエイトリンクが含まれています。訪問者がこのリンクを通じて商品やサービスを購入すると、当サイトは販売元から手数料を受け取ります。この過程において、購入者が支払う金額(イベント割引適用で金額が下がります↓)は上昇しません。掲載されている価格・割引・在庫情報は作成時点のものであり、実際とは異なる場合がありますので、ご購入前に販売元にて最終確認をお願いいたします。商品の選定および評価は独自の基準に基づいて行われており、手数料の支払いの有無は紹介順や評価内容に影響を与えません。

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

人間であることを証明してください: 4   +   1   =