it-swarm.dev

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

Eu quero trabalhar com o WordPress multisite, mas eu quero ser capaz de usar meus próprios nomes. Por exemplo, meu site principal é chamado example.com. Se eu quiser adicionar um novo site à minha rede multisite, ele será chamado newsite.example.com. Eu quero que seja newsite.com sem example. Existe uma maneira de conseguir isso?

Ouvi falar sobre mapeamento de domínio com um plugin, mas não sei se isso é relevante para essa questão. Se for relevante, gostaria de saber exatamente o que é isso.

16
Kevin.a

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

Então, primeiro de tudo, eu iria instalar o WordPress , setup multisite , e configurá-lo como uma configuração de rede de subdomínio.

Aqui está uma configuração de exemplo para o seu arquivo wp-config.php 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 );

Então, aqui está a configuração básica para o seu arquivo .htaccess 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)$ wp/$1 [L]
RewriteRule . index.php [L]

# EoF WordPress

Agora, para que os TLDs funcionem corretamente, eu tive que fazer algumas configurações adicionais no arquivo wp-config.php assim:

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 host virtual Apache para o domínio primário na rede e, em seguida, configurar esse host virtual com domínios de alias. Cada domínio de alias é um dos sites adicionais em sua rede.

No entanto, você acaba aprimorando sua configuração, precisa do DNS de cada domínio para resolver o mesmo servidor da Web e cada domínio deve ser apontado para o mesmo diretório em que o domínio principal é instalado com o WordPress. Cada domínio em sua rede precisa apontar para o mesmo servidor da Web com registros DNS e compartilhar o mesmo caminho de diretório para os arquivos usados ​​pelo WordPress.

Depois de configurar e configurar tudo corretamente, conforme discutido acima. Faça o login em 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ê vai adicionar um site, ele vai obrigá-lo a adicionar o site como se fosse um sub-domínio em seu domínio principal. Apenas role com isso. Digite algo temporário.

Uma vez que o site foi adicionado, então vá encontrá-lo na lista de sites em sua rede. Clique em editar nesse site específico. Agora, você pode totalmente 100% alterar o nome de domínio desse site. É quando você colocaria o nome de domínio real para esse site de TLD.

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

20
Michael Ecklund

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

Você precisa declarar uma URL principal (provavelmente kevin123.com) como a URL principal da rede (multisite). Isso é armazenado em wp-config.php na constante DOMAIN_CURRENT_SITE e o site (anteriormente conhecido como "blog") usando este domínio como URL inicial deve ter o ID armazenado em BLOG_ID_CURRENT_SITE. Mas isso é basicamente o material padrão durante o processo de instalação padrão.

O WordPress permite apenas especificar o subdomínio, quando você cria um novo site. Mas depois que o site é criado, você pode editá-lo e adicionar um valor completamente arbitrário para o URL do site. Eu descrevi isso há algum tempo nesta resposta com algumas capturas de tela: Subdomínios aninhados são possíveis com um subdomínio multisite?

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

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