¿Cómo usar Wordpress Multisite con diferentes nombres de dominio?

19

Quiero trabajar con WordPress multisitio, pero quiero poder usar mis propios nombres. Por ejemplo, mi sitio principal se llama example.com. Si quiero agregar un nuevo sitio a mi red multisitio, se llamará newsite.example.com. Yo quiero que sea newsite.comsin example. ¿Hay una manera de lograr esto?

Escuché sobre el mapeo de dominios con un complemento, pero no sé si esto es relevante para esta pregunta. Si es relevante, me gustaría saber qué es exactamente esto.

Kevin.a
fuente
Puede valer la pena señalar que, sin un complemento, tendrá que tener una IP dedicada, al menos eso he entendido.
Neal Jones

Respuestas:

25

Parece que siempre hay un poco de confusión sobre este tema. Quizás WordPress podría hacer un mejor trabajo guiando a sus usuarios en este proceso. Aunque, supongo que Multi-site no estaba destinado a ser utilizado para TLD.

Entonces, antes que nada, instalaría WordPress , configuraría varios sitios y lo configuraría como una configuración de red de subdominio.

Aquí hay una configuración de muestra para su wp-config.phparchivo en el directorio base de su instalación de 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 );

Luego, aquí está la configuración básica para su .htaccessarchivo como una configuración de subdominio, en el directorio base de su instalación de 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

Ahora para que los TLD funcionen correctamente, he tenido que hacer algunas configuraciones adicionales al wp-config.phparchivo de esta manera:

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

Eso es todo con las configuraciones específicas de WordPress.

Personalmente, me gusta tener un host virtual Apache para el dominio principal en la red y luego configurar ese host virtual con dominios de alias. Cada dominio de alias es uno de los sitios adicionales en su red.

Sin embargo, si termina ajustando su configuración, necesita que el DNS de cada dominio se resuelva en el mismo servidor web y que cada dominio apunte al mismo directorio en el que está instalado el dominio primario con WordPress. Cada dominio en su red debe apuntar al mismo servidor web con registros DNS y compartir la misma ruta de directorio para los archivos utilizados por WordPress.

Una vez que tenga todo configurado y configurado correctamente como se discutió anteriormente. Inicie sesión en su área de administración de WordPress y navegue hasta el área de administración de Red para agregar un nuevo sitio a su red.

Cuando vaya a agregar un sitio, lo obligará a agregar el sitio web como si fuera un subdominio bajo su dominio principal. Solo rueda con eso. Ingrese algo temporal.

Una vez que se haya agregado el sitio, búsquelo en la lista de sitios de su red. Haga clic en editar en ese sitio específico. Ahora, puede cambiar completamente el 100% del nombre de dominio de ese sitio web. Ahí es cuando pondría el nombre de dominio real para este sitio de TLD.

Sé que es un poco complicado hacerlo de esa manera, pero funciona y no necesitas usar ningún complemento.

Michael Ecklund
fuente
Gracias por esto, parece funcionar, y parecía necesitar la parte de la cookie. Para mí, 1) registré un nuevo dominio, 2) apunté sus servidores de nombres hacia mi host multisitio de WordPress existente, 3) en cPanel, hice un dominio adicional, configurando la raíz del documento como el mismo public_html que el sitio principal (como usted dijo; No lo intenté de la manera predeterminada, de un nuevo directorio, así que no estoy seguro de si eso funcionaría), y 4) cambié la URL del subsitio de oldsubdomain.primarysite.com a newdomain.com Crucemos los dedos, no hay problemas de DNS, así que lejos.
Robert Andrews
Me encanta esta respuesta ... pero tengo un problema. Su sugerencia para cambiar el .htaccess, ya que el wordpress también dio la misma modificación. cuando hago este cambio, el sistema se bloquea. ¿Alguna idea de por qué sería eso?
Debbie Kurth
4

Es posible sin ningún complemento desde hace algunos lanzamientos (no recuerdo el lanzamiento concreto pero la característica ha estado allí por un tiempo). Sin embargo, si comienza desde cero, debe instalar WordPress multisitio en el modo de subdominio .

Debe declarar una URL principal (probablemente kevin123.com) como la URL principal de la red (multisitio). Esto se almacena en wp-config.phpla DOMAIN_CURRENT_SITEconstante y el sitio (anteriormente conocido como »blog«) que usa este dominio como URL de inicio debe tener la ID almacenada BLOG_ID_CURRENT_SITE. Pero esto es bastante por defecto durante el proceso de instalación estándar.

WordPress le permite solo especificar el subdominio cuando crea un nuevo sitio. Pero después de crear el sitio, puede editarlo y agregar un valor completamente arbitrario para la URL del sitio. Lo describí hace algún tiempo en esta respuesta con algunas capturas de pantalla: ¿Son posibles los subdominios anidados con un subdominio multisitio?

También es posible que deba establecer la constante COOKIE_DOMANen un valor vacío en su wp-config.php:

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