Comment utiliser Wordpress Multisite avec différents noms de domaine?


19

Je veux travailler avec WordPress multisite, mais je veux pouvoir utiliser mes propres noms. Par exemple, mon site principal s'appelle example.com. Si je veux ajouter un nouveau site à mon réseau multisite, ça va être appelé newsite.example.com. Je veux que ce soit newsite.comsans example. Existe-t-il un moyen d'y parvenir?

J'ai entendu parler du mappage de domaine avec un plugin, mais je ne sais pas si cela est pertinent pour cette question. Si c'est pertinent, j'aimerais savoir ce que c'est exactement.


Il vaut peut-être la peine de noter que pour se passer d'un plugin, vous devrez avoir une IP dédiée, du moins c'est ce que j'ai compris.
Neal Jones

Réponses:


25

Il semble qu'il y ait toujours un peu de confusion sur ce sujet. Peut-être que WordPress pourrait mieux guider ses utilisateurs dans ce processus. Bien que, je suppose que Multi-site n'était pas destiné à être utilisé pour les TLD.

Donc, tout d'abord, j'installerais WordPress , installerais multisite et le configurerais comme une configuration de réseau de sous-domaine.

Voici un exemple de configuration de votre wp-config.phpfichier dans le répertoire de base de votre installation 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 );

Ensuite, voici la configuration de base de votre .htaccessfichier en tant que configuration de sous-domaine, dans le répertoire de base de votre installation 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

Maintenant, pour que les TLD fonctionnent correctement, j'ai dû faire des configurations supplémentaires dans le wp-config.phpfichier comme ceci:

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

C'est tout avec les configurations spécifiques à WordPress.

Personnellement, j'aime avoir un hôte virtuel Apache pour le domaine principal du réseau, puis configurer cet hôte virtuel avec des domaines d'alias. Chaque domaine d'alias étant l'un des sites supplémentaires de votre réseau.

Cependant, vous finissez par modifier votre configuration, vous avez besoin que le DNS de chaque domaine soit résolu sur le même serveur Web et que chaque domaine soit dirigé vers le même répertoire que le domaine principal est installé avec WordPress. Chaque domaine de votre réseau doit pointer vers le même serveur Web avec des enregistrements DNS et partager le même chemin de répertoire pour les fichiers utilisés par WordPress.

Une fois que vous avez tout configuré et configuré correctement, comme indiqué ci-dessus. Connectez-vous à votre zone d'administration WordPress et accédez à la zone d'administration réseau pour ajouter un nouveau site à votre réseau.

Lorsque vous allez ajouter un site, il vous obligera à ajouter le site Web comme s'il s'agissait d'un sous-domaine sous votre domaine principal. Roulez avec. Entrez quelque chose de temporaire.

Une fois le site ajouté, allez le chercher dans la liste des sites de votre réseau. Cliquez sur modifier sur ce site spécifique. Maintenant, vous pouvez modifier à 100% le nom de domaine de ce site Web. C'est alors que vous mettriez le nom de domaine réel pour ce site TLD.

Je sais que c'est un peu compliqué de le faire de cette façon, mais cela fonctionne et vous n'avez pas besoin d'utiliser de plugins.


Merci pour cela, semble fonctionner - et il semblait avoir besoin de la partie cookie. Pour moi, j'ai 1) enregistré un nouveau domaine, 2) dirigé ses serveurs de noms vers mon hôte WordPress multisite existant, 3) dans cPanel, fait un domaine complémentaire, en définissant la racine du document comme le même public_html que le site principal (comme vous dit; je ne l'ai pas essayé par défaut, d'un nouveau répertoire, donc je ne sais pas si cela fonctionnerait), et 4) changé l'URL du sous-site de oldsubdomain.primarysite.com en newdomain.com Les doigts croisés, pas de problèmes DNS donc loin.
Robert Andrews

J'adore cette réponse ... pourtant j'ai un problème. Votre suggestion de changer le .htaccess, car le wordpress a également donné la même modification. quand je fais ce changement, le système plante. Une idée de pourquoi ce serait?
Debbie Kurth

4

C'est possible sans aucun plugin depuis certaines versions (je ne me souviens pas de la version concrète mais la fonctionnalité existe depuis un certain temps maintenant). Cependant, si vous partez de zéro, vous devez installer WordPress multisite en mode sous - domaine .

Vous devez déclarer une URL principale (probablement kevin123.com) comme URL principale du réseau (multisite). Celui-ci est stocké dans wp-config.phpla DOMAIN_CURRENT_SITEconstante et le site (anciennement connu sous le nom de «blog») utilisant ce domaine comme URL d'accueil doit avoir l'ID stocké BLOG_ID_CURRENT_SITE. Mais c'est à peu près par défaut pendant le processus d'installation standard.

WordPress vous permet uniquement de spécifier le sous-domaine, lorsque vous créez un nouveau site. Mais une fois le site créé, vous pouvez le modifier et ajouter une valeur complètement arbitraire pour l'URL du site. Je l'ai décrit il y a quelque temps dans cette réponse avec quelques captures d'écran: les sous-domaines imbriqués sont-ils possibles avec un sous-domaine multisite?

Vous devrez peut-être également définir la constante COOKIE_DOMANsur une valeur vide dans votre wp-config.php:

define( 'COOKIE_DOMAIN', '' );
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.