web-dev-qa-db-fra.com

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

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, il s'appellera newsite.example.com. Je veux que ce soit newsite.com sans example. Y a-t-il un moyen d'y parvenir?

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

16
Kevin.a

Il semble y avoir toujours un peu de confusion sur ce sujet. WordPress pourrait peut-être faire un meilleur travail en guidant ses utilisateurs dans ce processus. Bien que, je suppose que Multi-site ne soit pas destiné à être utilisé pour les TLD.

Donc, tout d’abord, j’installerais installerais WordPress , installer multisite , et le configurer en tant que configuration réseau sous-domaine.

Voici un exemple de configuration pour votre fichier wp-config.php 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 fichier .htaccess 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)$ wp/$1 [L]
RewriteRule . index.php [L]

# EoF WordPress

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

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

Voilà pour les configurations spécifiques à WordPress.

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

Quoi que vous finissiez par peaufiner votre configuration, vous avez besoin du DNS de chaque domaine pour le résoudre sur le même serveur Web, et pour 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 les enregistrements DNS et partager le même chemin de répertoire pour les fichiers utilisés par WordPress.

Une fois que tout est 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 oblige à ajouter le site Web comme s'il s'agissait d'un sous-domaine de votre domaine principal. Il suffit de rouler avec elle. Entrez quelque chose de temporaire.

Une fois le site ajouté, recherchez-le dans la liste des sites de votre réseau. Cliquez sur Modifier sur ce site spécifique. Maintenant, vous pouvez entièrement changer le nom de domaine de ce site Web à 100%. C'est à ce moment-là 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 plug-ins.

20
Michael Ecklund

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). Toutefois, 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) en tant qu'URL principale du réseau (multisite). Celui-ci est stocké dans wp-config.php dans la constante DOMAIN_CURRENT_SITE et le site (anciennement connu sous le nom de "blog") utilisant ce domaine comme URL de base doit avoir l'ID stocké dans BLOG_ID_CURRENT_SITE. Mais il s’agit en gros de choses par défaut lors du 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 à l'URL du site. Je l'ai décrit il y a quelque temps dans cette réponse avec quelques captures d'écran: Des sous-domaines imbriqués sont-ils possibles avec un sous-domaine multisite?

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

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