워드프레스 멀티사이트: 하위 도메인과 하위 디렉토리 2가지 구조

공정위 광고 문구 Ver 3.1
공정위 광고 문구 Ver 3.2(모바일 전용)
테스트 환경 RHEL 계열AlmaLinux 9.8Nginx + ApacheWordPress 7.1.32026-10-27 확인

워드프레스 멀티사이트(WordPress Multisite)는 워드프레스 설치 하나로 여러 사이트를 네트워크로 묶어 관리하는 기능입니다. Nginx + Apache 구성의 워드프레스에서 네트워크 설치 화면으로 멀티사이트를 켜고 하위 사이트 하나를 추가해, 메뉴 경로와 설정 파일에 들어가는 줄을 확인했습니다.

1️⃣ 워드프레스 멀티사이트와 네트워크 관리자

  • ↪️ 설치 하나에 여러 사이트

멀티사이트에서는 워드프레스 설치 하나를 네트워크의 모든 사이트가 함께 사용합니다. 코어 파일과 플러그인, 테마도 공유하므로 서버에 사이트별 워드프레스 폴더가 생기지 않습니다.

사이트마다 따로 생기는 것은 데이터베이스 테이블과 미디어 업로드 폴더이며, 사용자 테이블만 네트워크 전체가 공유합니다. 첫 사이트는 기존 [/wp-content/uploads/]를, 다음 사이트부터는 [/wp-content/uploads/sites/]의 사이트 번호 폴더를 사용합니다.

네트워크 전체를 관리하는 사용자는 최고 관리자(Super Admin)입니다. 네트워크 관리자 화면은 네트워크를 만든 뒤 생기며, 최고 관리자에게만 표시됩니다.

사용자는 네트워크 계정으로 만들어지지만, 각 사이트에서 역할을 받아야 그 사이트에 접근할 수 있습니다. 사이트 관리자의 권한도 축소되어, 테마와 플러그인 설치, 다른 사용자의 프로필 수정은 최고 관리자만 할 수 있습니다.

아래 다이어그램에서 설치 하나가 네트워크를 거쳐 여러 사이트로 나뉘는 구조와, 주소 방식별 사이트 주소를 확인할 수 있습니다.

🧭 멀티사이트 구조와 주소 방식
설명 다이어그램
🧩 구조
🌐 주소 방식
📦 워드프레스 설치 하나코어 파일 하나
🌐 네트워크최고 관리자
🗂️ 사이트 여럿
메인 사이트번호 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와 서버에서 하위 도메인을 워드프레스 설치 폴더로 연결고유주소가 작동하면 추가 설정 없음
사용자가 직접 사이트를 만들 때와일드카드 하위 도메인 필요추가 조건 없음
선택할 수 없는 경우워드프레스 주소에 경로가 있거나 localhost, IP 주소일 때한 달 넘은 발행 글이 있는 사이트
메인 사이트 글 주소변화 없음글 주소 앞에 /blog/ 추가

하위 디렉터리 방식은 고유주소가 작동하는 서버라면 따로 설정할 것이 없지만, 한 달 넘은 발행 글이 있는 사이트에서는 선택할 수 없습니다. 기존 글 주소와 새 사이트 주소의 충돌을 막기 위한 제한이며, 이런 사이트는 하위 도메인 방식으로 설치하게 됩니다.

하위 디렉터리 네트워크의 메인 사이트는 글 주소에 [/blog/]가 추가됩니다. 하위 사이트 주소와 겹치지 않게 하려는 구조이며, 고정 페이지 주소에는 추가되지 않습니다.

한 번 정한 방식을 나중에 바꾸려면 여러 단계를 거쳐야 합니다. 공식 문서 기준으로 [SUBDOMAIN_INSTALL] 값과 재작성 규칙만 바꿔서는 기존 사이트 주소가 옮겨지지 않고, DNS와 인증서도 따로 설정해야 합니다.

3️⃣ 네트워크 설치 전 준비: 백업과 고유주소, 서버 조건

네트워크 설치는 기존 사이트의 파일과 데이터베이스를 바꾸는 작업이므로, 공식 문서는 새로 설치한 사이트가 아니라면 먼저 백업하도록 안내합니다.

데이터베이스와 파일을 백업하고 고유주소가 작동하는지 확인한 뒤, 활성화된 플러그인을 모두 비활성화합니다. 플러그인은 네트워크를 만든 뒤 다시 활성화합니다.

워드프레스를 별도 폴더에서 운영하도록 바꿀 계획이라면 멀티사이트를 활성화하기 전에 마칩니다. 하위 도메인 방식에 www 주소를 쓴다면 [워드프레스 주소 (URL)]와 [사이트 주소 (URL)]를 같게 맞추고, 도메인 변경도 설치 전에 끝냅니다.

워드프레스 주소에 :80이나 :443이 아닌 포트 번호가 붙어 있으면 네트워크를 만들 수 없습니다.

서버는 멀티사이트용 재작성 규칙을 처리해야 하며, Apache는 mod_rewrite가 필요합니다.

Nginx + Apache 구성에서는 Nginx가 요청을 Apache로 넘기고 Apache가 .htaccess를 읽습니다. 네트워크 설치 화면에 표시된 규칙으로 .htaccess를 바꾸자 하위 사이트 주소가 열렸으며, Nginx 쪽에 따로 추가한 규칙은 없습니다.

Nginx만 사용하는 서버는 워드프레스가 재작성 규칙을 만들지 않으므로, 공식 문서의 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 );

새로고침하면 [도구] 메뉴의 [개인 데이터 삭제] 아래에 [네트워크 설치]가 추가되며, 이 메뉴를 누르면 [워드프레스 사이트의 네트워크 만들기] 화면이 열립니다.

네트워크 설치 화면: 왼쪽 도구 메뉴의 네트워크 설치 · 하위 디렉터리 설치하기 · 서버 주소 · 네트워크 제목 · 네트워크 관리자 이메일 · 설치 버튼

하위 폴더에 설치한 워드프레스는 주소 방식을 고르는 칸 없이 [하위 디렉터리 설치하기] 줄만 표시됩니다. 그 줄의 문구는 [설치가 디렉터리에 있기에, 워드프레스 네트워크의 사이트는 하위 디렉터리를 사용해야만 합니다.]입니다.

[네트워크 제목]과 [네트워크 관리자 이메일]을 확인한 뒤 [설치]를 누릅니다.

공식 문서 기준으로 주소 방식을 고를 수 있는 설치에서 하위 도메인을 고르면 와일드카드 DNS 안내가 표시되며, 이 조건은 사용자가 직접 사이트를 만드는 네트워크에만 필요합니다.

설치 뒤 화면에는 그 사이트에 맞춘 wp-config.php 줄과 .htaccess 규칙이 표시됩니다. 두 파일을 백업하고 wp-config.php에는 [WP_ALLOW_MULTISITE] 줄 아래에 붙여 넣으며, .htaccess는 기존 워드프레스 규칙을 새 규칙으로 바꿉니다.

네트워크 설치 화면: 설치 뒤 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의 워드프레스 규칙은 아래로 바꾸며, [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]

두 파일을 저장한 뒤 화면의 [로그인] 링크로 다시 로그인하면 관리자 막대의 [내 사이트] 아래에 [네트워크 관리자]가 생깁니다. 로그인되지 않으면 브라우저 캐시와 쿠키를 삭제한 뒤 다시 로그인합니다.

내 사이트 메뉴 화면: 관리자 막대의 내 사이트 › 네트워크 관리자 › 알림판 · 사이트 · 사용자 · 테마 · 플러그인 · 설정

[네트워크 관리자]에는 알림판, 사이트, 사용자, 테마, 플러그인, 설정 여섯 메뉴가 있으며, [사이트]를 누르면 네트워크의 사이트 목록이 열립니다.

네트워크 관리자 사이트 화면: 메인 사이트와 하위 사이트 두 개의 목록 · 제목 옆 사이트 추가하기 버튼

하위 사이트는 목록 제목 옆 [사이트 추가하기]나 왼쪽 [사이트] › [사이트 추가하기]에서 추가합니다.

사이트 추가하기 화면: 사이트 주소 (URL) · 사이트 제목 · 사이트 언어 · 관리자 이메일 · 사이트 추가하기 버튼

[사이트 주소 (URL)]에는 소문자와 숫자, 하이픈만 넣을 수 있으며, [관리자 이메일]이 데이터베이스에 없는 주소면 새 사용자가 만들어집니다.

하위 사이트를 하나 추가하자 업로드 폴더에 [sites/2] 폴더가 생겼고, 데이터베이스에는 [wp_2_]처럼 접두어 뒤에 사이트 번호가 붙은 테이블 10개가 추가되었습니다.

하위 사이트의 고유주소는 메인 사이트 설정을 따르지 않고 연·월·일과 글 이름이 들어간 기본 구조로 시작하므로, 하위 사이트의 고유주소 설정에서 따로 정합니다.

아래 시뮬레이터에서 [도구] › [네트워크 설치]부터 [사이트 추가하기]까지의 경로를 차례로 눌러 볼 수 있습니다.

🧭 워드프레스 멀티사이트 네트워크 설치 시뮬레이터
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 & 추천 콘텐츠

워드프레스 4.5부터 도메인 매핑이 멀티사이트의 기본 기능이 되어, 하위 사이트에 example2.com 같은 별도 도메인을 연결할 수 있습니다. 공식 문서 기준으로 이때도 도메인의 DNS를 서버 IP로 연결하고, 서버가 그 도메인을 워드프레스 설치 폴더로 보내도록 설정합니다.

[네트워크 관리자]의 플러그인 화면에서 설치한 플러그인은 사이트마다 활성화하거나, [네트워크 활성화]로 모든 사이트에 한 번에 활성화합니다. 네트워크 활성화한 플러그인은 각 사이트의 플러그인 목록에 [네트워크 활성]으로 표시되며, 사이트 관리자는 비활성화할 수 없습니다. 테마는 네트워크 활성화해도 각 사이트의 테마가 바뀌지 않고, 사이트에서 선택할 수 있는 목록에만 추가됩니다.

코어와 테마, 플러그인 파일은 네트워크가 공유하므로 [네트워크 관리자]의 업데이트 화면에서 한 번 업데이트합니다. 코어를 업데이트한 뒤에는 [네트워크 업그레이드]를 실행하며, 각 사이트의 데이터베이스 변경을 다섯 개 사이트씩 차례로 적용합니다.

ℹ️ 제휴 안내
본 사이트의 콘텐츠에는 제휴 링크가 포함되어 있습니다. 방문자가 이 링크를 통해 상품 또는 서비스를 구매하면 본 사이트는 판매처로부터 수수료를 지급받습니다. 이 과정에서 구매자가 지불하는 금액(이벤트 할인 시 금액이 내려갑니다↓)은 오르지 않습니다. 게시된 가격·할인·재고 정보는 작성 시점 기준이며 실제와 다를 수 있으므로, 구매 전 판매처에서 최종 확인하시기 바랍니다. 상품 선정과 평가는 자체 기준에 따라 작성되며, 수수료 지급 여부가 소개 순서나 평가 내용에 영향을 주지 않습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

인간임을 증명하세요: 4   +   7   =