Como usar o Wordpress Multisite com diferentes nomes de domínio?

18

Quero trabalhar com vários sites do WordPress, mas quero poder usar meus próprios nomes. Por exemplo, meu site principal é chamado example.com. Se eu quiser adicionar um novo site à minha rede multissite, ele será chamado newsite.example.com. Eu quero que fique newsite.comsem example. Existe uma maneira de conseguir isso?

Eu ouvi sobre o mapeamento de domínio com um plug-in, mas não sei se isso é relevante para esta pergunta. Se for relevante, gostaria de saber exatamente o que é isso.

Kevin.a
fonte
Pode ser interessante notar que, para fazer sem um plug-in, você precisará ter um IP dedicado, pelo menos esse foi o meu entendimento.
Neal Jones

Respostas:

24

Parece sempre haver um pouco de confusão sobre esse tópico. Talvez o WordPress possa fazer um trabalho melhor orientando seus usuários nesse processo. Embora, suponho que o Multi-site não se destinasse a ser usado para TLDs.

Então, antes de tudo, eu instalaria o WordPress , configuraria vários sites e o configuraria como uma configuração de rede de subdomínio.

Aqui está uma configuração de amostra para o seu wp-config.phparquivo no diretório base da sua instalação do WordPress:

/* Multisite */
define( 'WP_ALLOW_MULTISITE', true );
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', true );
define( 'DOMAIN_CURRENT_SITE', 'www.primary-domain.com' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

Em seguida, veja a configuração básica do seu .htaccessarquivo como uma configuração de subdomínio, no diretório base da sua instalação do WordPress:

# BoF WordPress

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)$ $1 [L]
RewriteRule . index.php [L]

# EoF WordPress

Agora, para que os TLDs funcionem corretamente, tive que fazer algumas configurações adicionais para o wp-config.phparquivo como este:

define( 'COOKIE_DOMAIN', '' );
define( 'ADMIN_COOKIE_PATH', '/' );
define( 'COOKIEPATH', '/' );
define( 'SITECOOKIEPATH', '/' );

É isso com as configurações específicas do WordPress.

Pessoalmente, gosto de ter um Apache Virtual Host para o domínio principal na rede e, em seguida, configurar esse host virtual com domínios de alias. Cada domínio alternativo é um dos sites adicionais em sua rede.

No entanto, você acaba ajustando sua configuração, é necessário que o DNS de cada domínio seja resolvido no mesmo servidor da Web e que cada domínio seja apontado para o mesmo diretório em que o domínio principal está instalado com o WordPress. Cada domínio na sua rede precisa apontar para o mesmo servidor Web com registros DNS e compartilhar o mesmo caminho de diretório para os arquivos usados ​​pelo WordPress.

Depois de configurar tudo e configurar corretamente, conforme discutido acima. Faça login na sua área de administração do WordPress e navegue até a área de administração de Rede para adicionar um novo site à sua rede.

Quando você adiciona um site, ele o força a adicionar o site como se fosse um subdomínio no seu domínio principal. Apenas role com ele. Digite algo temporário.

Depois que o site foi adicionado, encontre-o na lista de sites da sua rede. Clique em editar nesse site específico. Agora, você pode alterar totalmente o nome de domínio desse site 100%. É quando você coloca o nome de domínio real para este site de TLD.

Eu sei que é um pouco complicado fazer dessa maneira, mas funciona e você não precisa usar nenhum plug-in.

Michael Ecklund
fonte
Obrigado por isso, parece funcionar - e parecia precisar da parte do cookie. Para mim, eu 1) registrei um novo domínio, 2) apontei seus servidores de nome para o meu host Multisite WordPress existente, 3) no cPanel, fiz um Domínio Complementar, definindo a raiz do documento como o mesmo public_html que o site principal (como você disse: eu não tentei da maneira padrão, de um novo diretório, por isso não tenho certeza se isso funcionaria) e 4) alterei o URL do subsite de oldsubdomain.primarysite.com para newdomain.com Dedos cruzados, sem problemas de DNS. longe.
Robert Andrews
Adoro esta resposta ... mas tenho um problema. Sua sugestão para alterar o .htaccess, como o wordpress, também deu a mesma modificação. quando faço essa alteração, o sistema trava. Alguma idéia de por que isso seria?
Debbie Kurth
4

É possível sem qualquer plug-in desde alguns lançamentos atrás (não me lembro do lançamento concreto, mas o recurso já existe há algum tempo). No entanto, se você começar do zero, deverá instalar o multisite do WordPress no modo subdomínio .

Você deve declarar um URL principal (provavelmente kevin123.com) como o URL principal da rede (multissite). Este é armazenado em wp-config.phpna DOMAIN_CURRENT_SITEconstante e do site (anteriormente conhecido como »Blog«) usando esse domínio como URL casa deve ter a ID armazenada no BLOG_ID_CURRENT_SITE. Mas isso é praticamente o padrão durante o processo de instalação padrão.

O WordPress permite que você especifique apenas o subdomínio ao criar um novo site. Porém, após a criação do site, você pode editá-lo e adicionar um valor completamente arbitrário ao URL do site. Eu o descrevi há algum tempo nesta resposta com algumas capturas de tela: Os subdomínios aninhados são possíveis com um multissite de subdomínio?

Você também pode precisar definir a constante COOKIE_DOMANcomo um valor vazio no seu wp-config.php:

define( 'COOKIE_DOMAIN', '' );
David
fonte