WordPress multisite: 2 estruturas, subdomínio e subdiretório
WordPress multisite (WordPress Multisite) é um recurso que reúne vários sites em uma rede e os gerencia com uma única instalação do WordPress. Em um WordPress com configuração Nginx + Apache, ativamos o multisite pela tela de instalação da rede, adicionamos um subsite e conferimos os caminhos de menu e as linhas que entram nos arquivos de configuração.
1️⃣ WordPress multisite e o Painel da rede
No multisite, todos os sites da rede usam juntos uma única instalação do WordPress. Os arquivos principais, os plugins e os temas também são compartilhados, então o servidor não ganha uma pasta do WordPress para cada site.
O que cada site tem separado são as tabelas do banco de dados e a pasta de upload de mídia, e só as tabelas de usuários são compartilhadas pela rede inteira. O primeiro site usa o [/wp-content/uploads/] existente e, a partir do próximo, cada site usa a pasta com o número do site dentro de [/wp-content/uploads/sites/].
O usuário que gerencia a rede inteira é o super administrador (Super Admin). As telas do Painel da rede aparecem depois que a rede é criada e só são exibidas para super administradores.
Os usuários são criados como contas da rede, mas precisam receber uma função em cada site para acessar aquele site. As permissões dos administradores de site também ficam menores: só o super administrador pode instalar temas e plugins ou editar o perfil de outros usuários.
No diagrama abaixo, você vê como uma instalação se divide em vários sites por meio da rede e os endereços dos sites em cada tipo de endereço.
2️⃣ Diferença entre subdomínio e subdiretório: formato do endereço e limites de escolha
Ao instalar a rede, você escolhe o tipo de endereço dos sites entre subdomínio e subdiretório. Subdomínio é um endereço no formato site1.example.com, e subdiretório (subpasta), no formato example.com/site1.
| Item | Subdomínio | Subdiretório |
|---|---|---|
| Endereço do site | site1.example.com | example.com/site1 |
| Nome na documentação oficial | Baseado em domínio (domain-based) | Baseado em caminho (path-based) |
| Preparação no servidor | Apontar os subdomínios para a pasta de instalação do WordPress no DNS e no servidor | Nenhuma configuração extra se os links permanentes funcionam |
| Quando os usuários criam os próprios sites | Subdomínios curinga necessários | Nenhum requisito extra |
| Quando não dá para escolher | Quando o endereço do WordPress tem um caminho, ou é localhost ou um endereço IP | Sites com posts publicados há mais de um mês |
| Endereço dos posts do site principal | Sem mudança | /blog/ antes do endereço dos posts |
Com subdiretórios, não há nada a configurar em um servidor onde os links permanentes funcionam, mas esse tipo não pode ser escolhido em um site com posts publicados há mais de um mês. É um limite para evitar conflito entre os endereços dos posts existentes e os endereços dos novos sites, e esses sites acabam sendo instalados com subdomínios.
Em uma rede com subdiretórios, os endereços dos posts do site principal ganham [/blog/]. Isso evita que se sobreponham aos endereços dos subsites, e o trecho não é adicionado aos endereços das páginas.
Mudar depois o tipo escolhido exige várias etapas. Segundo a documentação oficial, mudar só o valor de [SUBDOMAIN_INSTALL] e as regras de reescrita não transfere os endereços dos sites existentes, e o DNS e os certificados também precisam ser configurados à parte.
3️⃣ Preparação antes de instalar a rede: backup, links permanentes e requisitos do servidor
A instalação da rede altera os arquivos e o banco de dados de um site existente, por isso a documentação oficial orienta fazer backup antes, a menos que seja um site recém-instalado.
Faça backup do banco de dados e dos arquivos, confira se os links permanentes funcionam e depois desative todos os plugins ativos. Ative os plugins de novo depois de criar a rede.
Se você pretende fazer o WordPress rodar em uma pasta própria, termine isso antes de ativar o multisite. Se você usa subdomínios e o endereço tem www, deixe [Endereço do WordPress (URL)] e [Endereço do site (URL)] iguais e conclua também qualquer troca de domínio antes da instalação.
Se o endereço do WordPress tiver um número de porta diferente de :80 ou :443, não é possível criar a rede.
O servidor precisa processar as regras de reescrita do multisite, e o Apache precisa do mod_rewrite.
Na configuração Nginx + Apache, o Nginx repassa as requisições ao Apache e o Apache lê o .htaccess. Ao trocar o .htaccess pelas regras exibidas na tela de instalação da rede, os endereços do subsite abriram, e não adicionamos nenhuma regra no lado do Nginx.
Em servidores que usam só o Nginx, o WordPress não cria as regras de reescrita, então você precisa adicionar a configuração do Nginx da documentação oficial direto no arquivo de configuração do servidor.
Em ambientes em que você não pode mudar a configuração do servidor por conta própria, como a hospedagem compartilhada, requisitos como subdomínios curinga precisam ser combinados com a empresa de hospedagem (segundo a documentação oficial).
4️⃣ Passos da instalação da rede
A constante [WP_ALLOW_MULTISITE] colocada no wp-config.php só exibe o menu [Ferramentas] › [Instalação da rede]; sozinha, ela não ativa o multisite. A rede só fica ativa depois que você a instala nessa tela e adiciona ao wp-config.php e ao .htaccess as linhas que aparecem nela.
Abra o wp-config.php e adicione, acima do comentário de fim da edição, uma linha que defina [WP_ALLOW_MULTISITE] como true. O comentário de fim da edição é a linha /* That’s all, stop editing! Happy publishing. */; depois de salvar, recarregue o navegador.
define( 'WP_ALLOW_MULTISITE', true );Ao recarregar, [Instalação da rede] é adicionado abaixo de [Apagar dados pessoais] no menu [Ferramentas], e ao clicar nesse menu abre a tela [Criar uma Rede de Sites em WordPress].

Um WordPress instalado em uma subpasta mostra só a linha [Instalação com subdiretório], sem campo para escolher o tipo de endereço. O texto dessa linha é [Devido à sua instalação estar em um diretório, os sites da sua rede WordPress devem usar subdiretórios.]
Confira [Nome da rede] e [E-mail do administrador da rede] e clique em [Instalar].
Segundo a documentação oficial, nas instalações em que dá para escolher o tipo de endereço, escolher subdomínios mostra um aviso sobre DNS curinga, e esse requisito só vale para redes em que os usuários criam os próprios sites.
Depois da instalação, a tela mostra as linhas do wp-config.php e as regras do .htaccess ajustadas para aquele site. Faça backup dos dois arquivos, cole as linhas no wp-config.php abaixo da linha [WP_ALLOW_MULTISITE] e, no .htaccess, troque as regras do WordPress existentes pelas novas.

Nas instruções da tela após a instalação, o comentário de fim da edição aparece traduzido para o idioma do painel, mas o comentário dentro do wp-config.php continua em inglês.
As linhas adicionadas ao wp-config.php são seis constantes, entre elas [MULTISITE] e [SUBDOMAIN_INSTALL]. O valor de [SUBDOMAIN_INSTALL] é true para subdomínios e false para subdiretórios.
Em [DOMAIN_CURRENT_SITE] e [PATH_CURRENT_SITE] ficam o domínio e o caminho de instalação do site. Abaixo estão as linhas de uma instalação na raiz de example.com com subdiretórios.
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 );No mesmo caso, as regras do WordPress no .htaccess são trocadas pelas seguintes, e a linha [RewriteBase] recebe o caminho de instalação.
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]Depois de salvar os dois arquivos, acesse de novo pelo link [Acessar] da tela, e [Painel da rede] aparece abaixo de [Meus sites] na barra de administração. Se não conseguir acessar, apague o cache e os cookies do navegador e acesse de novo.

O [Painel da rede] tem seis menus: Painel, Sites, Usuários, Temas, Plugins e Configurações, e ao clicar em [Sites] abre a lista de sites da rede.

Os subsites são adicionados em [Adicionar site], ao lado do título da lista, ou em [Sites] › [Adicionar site] à esquerda.

Em [Endereço do site (URL)] só dá para usar letras minúsculas, números e hífens, e se o [E-mail do admin] não estiver no banco de dados, um novo usuário é criado.
Ao adicionar um subsite, surgiu a pasta [sites/2] na pasta de uploads, e o banco de dados ganhou 10 tabelas com o número do site depois do prefixo, como [wp_2_].
Os links permanentes de um subsite não seguem as configurações do site principal e começam com a estrutura padrão, que inclui ano, mês, dia e nome do post, por isso são definidos à parte nas configurações de links permanentes do subsite.
No simulador abaixo, você pode clicar em ordem no caminho de [Ferramentas] › [Instalação da rede] até [Adicionar site].
네트워크 설치 절차에 오신 것을 환영합니다!
아래의 정보를 채우고 워드프레스 사이트의 네트워크를 만들 수 있습니다. 다음 단계에서 구성 파일을 만들 것입니다.
다음 단계를 완료하여 사이트의 네트워크 만들기 기능을 활성화하세요.
- /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 );
- 다른 워드프레스 규칙을 교체하는 /var/www/html/wp/의 .htaccess 파일에 다음을 넣습니다:.htaccess에 대한 네트워크 환경설정 규칙RewriteEngine OnRewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]RewriteBase /wp/RewriteRule ^index\.php$ – [L]# add a trailing slash to /wp-adminRewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]RewriteCond %{REQUEST_FILENAME} -f [OR]RewriteCond %{REQUEST_FILENAME} -dRewriteRule ^ – [L]RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]RewriteRule . index.php [L]
이 단계를 완료하고나면, 네트워크를 활성화하고 구성합니다. 다시 로그인해야 합니다.
위의 이메일 주소가 데이터베이스에 없으면 새 사용자를 만들 것입니다.
비밀번호를 설정하는 사용자 이름과 링크를 이 이메일 주소로 보낼 것입니다.
5️⃣ Quando o multisite não é indicado
O multisite é indicado quando, como em sites regionais, os temas e plugins são compartilhados e o conteúdo é gerenciado separadamente. Se os sites precisam compartilhar dados ou usuários de perto, a documentação oficial informa que o multisite pode não ser a melhor opção.
Se só o design precisa parecer diferente, você resolve isso em um site único com um plugin que troca temas ou folhas de estilo. Quando cada grupo de usuários só precisa ver informações diferentes, também dá para resolver em um site único com plugins que mudam permissões e menus.
Confira antes também os plugins que você usa. Nem todo plugin do diretório de plugins funciona no multisite, por isso a documentação oficial orienta conferir o suporte na página do plugin ou com o desenvolvedor.
🔢 FAQ & conteúdo recomendado
Servidor
Configurações básicas do htaccess no WordPress
Um post que reúne separadamente as regras básicas do .htaccess para sites comuns e para multisite.
SEO
Subdomínio VS subpasta
Um post que compara subdomínios e subpastas para ver qual é melhor para SEO.
Configurações
Links permanentes e slugs no WordPress
Explica a estrutura de links permanentes e os slugs definidos à parte em cada subsite.
ℹ️ Aviso de afiliados
O conteúdo deste site contém links de afiliados. Quando um visitante compra um produto ou serviço por meio de um desses links, o site recebe uma comissão do vendedor. O valor que o comprador paga (em promoções, ele diminui ↓) não aumenta por causa disso. Preços, descontos e informações de estoque valem para o momento em que o texto foi escrito e podem ter mudado, por isso confirme com o vendedor antes de comprar. Os produtos são escolhidos e avaliados por critérios próprios, e o recebimento de comissão não influencia a ordem de apresentação nem o conteúdo das avaliações.