기본적으로 WordPress를 설치하게 되면 하나의 사이트에 대한 WordPress가 설치됩니다. 하지만 WordPress 3.5 버전부터는 Multi-site 기능이 기본 Core 추가되어 별도의 설치 없이 설정 변경만으로 다중 사이트 운용이 가능합니다.
* 모든 과정을 진행하기 앞서 미리 설치한 WordPress 사이트의 DB와 내용을 백업 하신 이후 진행하시길 바랍니다.
다중 사이트를 이용하기 위해서는 Network 라는 기능을 사용하게 되는데 wp-config.php 파일과 .htaccess 파일을 수정해야 합니다. 이때 Sub-domain(domain-based network)을 사용할 것인지 Sub-directory(path-based network)를 사용할 것인지에 따라 설정 값이 달라집니다.
Sub-doamin / Sub-directory 란?
Sub-domain (domain-based network)
Subfolder 방식으로도 불리며 사이트 접속 시 아래와 같이 경로 기반의 URL을 사용하는 경우를 뜻합니다.
http://subsite.example.com
Sub-directory (path-based network)
Subfolder 방식으로도 불리며 사이트 접속 시 아래와 같이 경로 기반의 URL을 사용하는 경우를 뜻합니다.
http://example.com/subsite
Step 1: Multisite 기능 켜기
wp-config.php 파일 하단에 /* That’s all, stop editing! Happy blogging. */ 이후 부분에 아래와 같이 작성합니다.
/* Multisite */ define( 'WP_ALLOW_MULTISITE', true );
admin 페이지를 새로고침 하면 Settings>Network Setup 페이지를 참고하여 설치를 진행합니다.
Step 2: Installing a Network
wp-config.php 파일에 아래와 같이 추가합니다.
define('MULTISITE', true); define('DOMAIN_CURRENT_SITE', 'dbserver.korea.ac.kr'); define('PATH_CURRENT_SITE', '/'); define('SITE_ID_CURRENT_SITE', 1); define('BLOG_ID_CURRENT_SITE', 1);
Sub-domain (domain-based network)
wp-config.php 파일에 아래를 추가합니다.
define('SUBDOMAIN_INSTALL', true);
WordPress 3.5 이상 버전에서 .htaccess 파일을 아래와 같이 수정합니다.
RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] # add a trailing slash to /wp-admin RewriteRule ^wp-admin$ wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^(wp-(content|admin|includes).*) $1 [L] RewriteRule ^(.*\.php)$ wp/$1 [L] RewriteRule . index.php [L]
Sub-directory (path-based network)
wp-config.php 파일에 아래를 추가합니다.
define('SUBDOMAIN_INSTALL', false);
WordPress 3.5 이상 버전에서 .htaccess 파일을 아래와 같이 수정합니다. 기존에 3.5 하위 버전에서 업그레이드를 진행한 경우 이전 버전을 위한 .htaccess 형태를 사용해야 합니다.
RewriteEngine On 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]