WordPress multisite : 2 structures, sous-domaine et sous-répertoire
WordPress multisite (WordPress Multisite) est une fonction qui regroupe plusieurs sites en un réseau et les gère avec une seule installation de WordPress. Sur un WordPress en configuration Nginx + Apache, nous avons activé le multisite depuis l’écran de création du réseau, ajouté un sous-site et vérifié les chemins de menu ainsi que les lignes à ajouter aux fichiers de configuration.
1️⃣ WordPress multisite et l’admin du réseau
En multisite, tous les sites du réseau utilisent ensemble une seule installation de WordPress. Les fichiers du cœur, les extensions et les thèmes sont aussi partagés, donc le serveur ne crée pas de dossier WordPress pour chaque site.
Ce que chaque site possède séparément, ce sont ses tables de base de données et son dossier de téléversement des médias, et seules les tables des comptes sont partagées par tout le réseau. Le premier site utilise le [/wp-content/uploads/] existant, puis chaque site suivant utilise le dossier portant son numéro de site dans [/wp-content/uploads/sites/].
Le compte qui gère tout le réseau est le super-admin (Super Admin). Les écrans de l’admin du réseau apparaissent après la création du réseau et ne s’affichent qu’aux super-admins.
Les comptes sont créés comme comptes du réseau, mais ils doivent recevoir un rôle sur chaque site pour y accéder. Les droits des administrateurs de site sont aussi réduits : seul le super-admin peut installer des thèmes et des extensions ou modifier le profil d’autres comptes.
Le diagramme ci-dessous montre comment une installation se divise en plusieurs sites via le réseau, ainsi que les adresses de site selon le type d’adresse.
2️⃣ Sous-domaine ou sous-répertoire : format d’adresse et limites de choix
Lors de la création du réseau, vous choisissez le type d’adresse des sites entre sous-domaine et sous-répertoire. Un sous-domaine est une adresse du type site1.example.com, et un sous-répertoire (sous-dossier) une adresse du type example.com/site1.
| Catégorie | Sous-domaine | Sous-répertoire |
|---|---|---|
| Adresse du site | site1.example.com | example.com/site1 |
| Nom dans la documentation officielle | Basé sur le domaine (domain-based) | Basé sur le chemin (path-based) |
| Préparation côté serveur | Diriger les sous-domaines vers le dossier d’installation de WordPress dans le DNS et sur le serveur | Aucun réglage en plus si les permaliens fonctionnent |
| Quand les comptes créent eux-mêmes leurs sites | Sous-domaines génériques nécessaires | Aucune condition en plus |
| Quand ce choix est impossible | Quand l’adresse de WordPress contient un chemin, ou est localhost ou une adresse IP | Sites ayant des articles publiés il y a plus d’un mois |
| Adresse des articles du site principal | Aucun changement | /blog/ ajouté devant l’adresse des articles |
Le sous-répertoire ne demande aucun réglage particulier sur un serveur où les permaliens fonctionnent, mais il ne peut pas être choisi sur un site ayant des articles publiés il y a plus d’un mois. Cette limite évite les conflits entre les adresses des articles existants et celles des nouveaux sites, et ces sites sont donc installés en sous-domaine.
Dans un réseau en sous-répertoire, [/blog/] est ajouté aux adresses des articles du site principal. Cette structure évite qu’elles se confondent avec les adresses des sous-sites, et il n’est pas ajouté aux adresses des pages.
Changer plus tard le type choisi demande plusieurs étapes. Selon la documentation officielle, modifier seulement la valeur de [SUBDOMAIN_INSTALL] et les règles de réécriture ne déplace pas les adresses des sites existants, et le DNS et les certificats doivent aussi être réglés à part.
3️⃣ Préparation avant la création du réseau : sauvegarde, permaliens et conditions du serveur
La création du réseau modifie les fichiers et la base de données d’un site existant, c’est pourquoi la documentation officielle conseille de faire d’abord une sauvegarde, sauf pour un site fraîchement installé.
Sauvegardez la base de données et les fichiers, vérifiez que les permaliens fonctionnent, puis désactivez toutes les extensions actives. Réactivez les extensions après la création du réseau.
Si vous prévoyez de faire tourner WordPress depuis son propre dossier, faites-le avant d’activer le multisite. Si vous utilisez une adresse en www avec les sous-domaines, rendez identiques [Adresse web de WordPress (URL)] et [Adresse web du site (URL)], et terminez aussi tout changement de domaine avant la création du réseau.
Si l’adresse de WordPress comporte un numéro de port autre que :80 ou :443, vous ne pouvez pas créer de réseau.
Le serveur doit traiter les règles de réécriture du multisite, et Apache a besoin de mod_rewrite.
En configuration Nginx + Apache, Nginx transmet les requêtes à Apache et Apache lit le .htaccess. Après avoir remplacé le .htaccess par les règles affichées sur l’écran de création du réseau, les adresses du sous-site se sont ouvertes, et nous n’avons ajouté aucune règle côté Nginx.
Sur les serveurs qui n’utilisent que Nginx, WordPress ne crée pas les règles de réécriture : il faut ajouter directement la configuration Nginx de la documentation officielle au fichier de configuration du serveur.
Dans les environnements où vous ne pouvez pas modifier vous-même la configuration du serveur, comme l’hébergement mutualisé, les conditions comme les sous-domaines génériques sont à voir avec l’hébergeur (selon la documentation officielle).
4️⃣ Étapes de création du réseau
La constante [WP_ALLOW_MULTISITE] ajoutée à wp-config.php ne fait qu’afficher le menu [Outils] › [Création du réseau] ; à elle seule, elle n’active pas le multisite. Le réseau n’est activé qu’après son installation sur cet écran et l’ajout des lignes affichées à wp-config.php et au .htaccess.
Ouvrez wp-config.php et ajoutez, au-dessus du commentaire de fin d’édition, une ligne qui définit [WP_ALLOW_MULTISITE] sur true. Le commentaire de fin d’édition est la ligne /* That’s all, stop editing! Happy publishing. */ ; après l’enregistrement, rechargez le navigateur.
define( 'WP_ALLOW_MULTISITE', true );Après le rechargement, [Création du réseau] est ajouté sous [Effacer les données] dans le menu [Outils], et un clic dessus ouvre l’écran [Créer un réseau de sites WordPress].

Un WordPress installé dans un sous-dossier n’affiche aucun champ pour choisir le type d’adresse, seulement la ligne [Installation en sous-répertoire]. Le texte de cette ligne est [Comme votre installation de WordPress se trouve dans un répertoire, les sites de votre réseau doivent utiliser des sous-répertoires.]
Vérifiez [Titre du réseau] et [E-mail de l’administrateur ou de l’administratrice du réseau], puis cliquez sur [Installer].
Selon la documentation officielle, sur les installations où le type d’adresse peut être choisi, choisir les sous-domaines affiche un avis sur le DNS générique, et cette condition ne concerne que les réseaux où les comptes créent eux-mêmes leurs sites.
Après l’installation, l’écran affiche les lignes de wp-config.php et les règles du .htaccess adaptées à ce site. Sauvegardez les deux fichiers, collez les lignes dans wp-config.php sous la ligne [WP_ALLOW_MULTISITE] et remplacez dans le .htaccess les règles WordPress existantes par les nouvelles.

Dans les instructions de l’écran après l’installation, le commentaire de fin d’édition s’affiche traduit dans la langue de l’administration, mais le commentaire dans wp-config.php reste en anglais.
Les lignes ajoutées à wp-config.php sont six constantes, dont [MULTISITE] et [SUBDOMAIN_INSTALL]. La valeur de [SUBDOMAIN_INSTALL] est true en sous-domaine et false en sous-répertoire.
[DOMAIN_CURRENT_SITE] et [PATH_CURRENT_SITE] contiennent le domaine et le chemin d’installation du site. Voici les lignes pour une installation à la racine de example.com en sous-répertoire.
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false );
define( 'DOMAIN_CURRENT_SITE', 'example.com' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );Dans le même cas, les règles WordPress du .htaccess sont remplacées par les suivantes, et la ligne [RewriteBase] contient le chemin d’installation.
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]Après avoir enregistré les deux fichiers, reconnectez-vous avec le lien [Se connecter] de l’écran : [Admin du réseau] apparaît alors sous [Mes sites] dans la barre d’administration. Si la connexion échoue, videz le cache et les cookies du navigateur puis reconnectez-vous.

[Admin du réseau] compte six menus : Tableau de bord, Sites, Comptes, Thèmes, Extensions et Réglages, et un clic sur [Sites] ouvre la liste des sites du réseau.

Les sous-sites s’ajoutent depuis [Ajouter un site] à côté du titre de la liste, ou depuis [Sites] › [Ajouter un site] à gauche.

[Adresse web du site (URL)] n’accepte que des minuscules, des chiffres et des traits d’union, et si l’[E-mail de l’administrateur ou de l’administratrice] n’existe pas dans la base de données, un nouveau compte est créé.
Après l’ajout d’un sous-site, un dossier [sites/2] est apparu dans le dossier de téléversement, et 10 tables portant le numéro de site après le préfixe, comme [wp_2_], ont été ajoutées à la base de données.
Les permaliens d’un sous-site ne suivent pas les réglages du site principal et commencent avec la structure par défaut, qui contient l’année, le mois, le jour et le nom de l’article : réglez-les séparément dans les réglages des permaliens du sous-site.
Dans le simulateur ci-dessous, vous pouvez cliquer dans l’ordre sur le chemin de [Outils] › [Création du réseau] jusqu’à [Ajouter un site].
네트워크 설치 절차에 오신 것을 환영합니다!
아래의 정보를 채우고 워드프레스 사이트의 네트워크를 만들 수 있습니다. 다음 단계에서 구성 파일을 만들 것입니다.
다음 단계를 완료하여 사이트의 네트워크 만들기 기능을 활성화하세요.
- /var/www/html/wp/의 wp-config.php파일에 /* 그게 다입니다. 편집을 멈추세요! 즐겁게 발행하세요. */행 위에 다음을 추가합니다:wp-config.php에 대한 네트워크 환경설정 규칙define( 'MULTISITE', true );define( 'SUBDOMAIN_INSTALL', false );define( 'DOMAIN_CURRENT_SITE', 'example.com' );define( 'PATH_CURRENT_SITE', '/wp/' );define( 'SITE_ID_CURRENT_SITE', 1 );define( 'BLOG_ID_CURRENT_SITE', 1 );
- 다른 워드프레스 규칙을 교체하는 /var/www/html/wp/의 .htaccess 파일에 다음을 넣습니다:.htaccess에 대한 네트워크 환경설정 규칙RewriteEngine OnRewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]RewriteBase /wp/RewriteRule ^index\.php$ – [L]# add a trailing slash to /wp-adminRewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]RewriteCond %{REQUEST_FILENAME} -f [OR]RewriteCond %{REQUEST_FILENAME} -dRewriteRule ^ – [L]RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]RewriteRule . index.php [L]
이 단계를 완료하고나면, 네트워크를 활성화하고 구성합니다. 다시 로그인해야 합니다.
위의 이메일 주소가 데이터베이스에 없으면 새 사용자를 만들 것입니다.
비밀번호를 설정하는 사용자 이름과 링크를 이 이메일 주소로 보낼 것입니다.
5️⃣ Quand le multisite ne convient pas
Le multisite convient quand, comme pour des sites régionaux, les thèmes et les extensions sont partagés et le contenu est géré séparément. Si les sites doivent partager étroitement des données ou des comptes, la documentation officielle indique que le multisite n’est peut-être pas la meilleure solution.
Si seul le design doit être différent, vous pouvez le gérer sur un site unique avec une extension qui change de thème ou de feuille de style. Si chaque groupe de comptes doit seulement voir des informations différentes, un site unique suffit aussi, avec des extensions qui modifient les droits et les menus.
Vérifiez aussi d’abord les extensions que vous utilisez. Toutes les extensions du répertoire des extensions ne fonctionnent pas en multisite, c’est pourquoi la documentation officielle conseille de vérifier la compatibilité sur la page de l’extension ou auprès de son développeur.
🔢 FAQ & contenus recommandés
Serveur
Réglages de base du htaccess WordPress
Un article qui présente séparément les règles de base du .htaccess pour les sites classiques et pour le multisite.
SEO
Sous-domaine VS sous-dossier
Un article qui compare sous-domaines et sous-dossiers pour savoir lequel favorise le SEO.
Réglages
Permaliens et slugs WordPress
Explique la structure des permaliens et les slugs réglés séparément pour chaque sous-site.
ℹ️ Mention d'affiliation
Le contenu de ce site contient des liens d'affiliation. Lorsqu'un visiteur achète un produit ou un service via l'un de ces liens, le site perçoit une commission du vendeur. Le montant payé par l'acheteur(il baisse lors des promotions ↓), lui, n'augmente pas. Les prix, remises et stocks indiqués correspondent à la date de rédaction et peuvent différer ; vérifiez-les donc auprès du vendeur avant d'acheter. Les produits sont choisis et évalués selon nos propres critères, et les commissions n'influencent ni l'ordre de présentation ni le contenu des évaluations.