Dans la suite on suppose qu'une première configuration de Wordpress en Multisite est réalisée.
Nous supposons aussi que 2 sites ont été créés http://multisite.test/formater et sa traduction en anglais http://multisite.test/formater-en
On souhaite créer 2 virtualHosts: http://www.formater.test et http://en.formater.test qui nous renverrons vers nos 2 sites.
Il suffit de suivre la procédure décrite sur la page Créer des virtualHosts:
/etc/apache2/sites-available/www.formater.test.conf et /etc/apache2/sites-available/en.formater.test.conf
Le dossier sur lequel pointe nos 2 virtualhosts est /var/www/multiste.test/.
C'est la même configuration que pour notre hôte multisite.test, seul le ServerName change.
Le fichier /etc/apache2/sites-available/www.formater.test.conf contient donc
<VirtualHost *:80>
ServerName www.formater.test
DocumentRoot /var/www/multisite.test
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/multisite.test>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
Une fois, la procédure terminée, lorsque je vais sur le site http://www.formater.test ou sur le site http://en.formater.test, je me trouve sur la même page que http://multisite.test.
Il faut maintenant dire à Wordpress que http://www.formater.test doit mapper avec http://multisite.test/formater et http://en.formater.test avec http://multisite.test/formater-en
C'est le plugin Domain-Mapping qui s'en occupe: Il suffit de se rendre sur le tableau de bord du site formater dans l'onglet Outils > Domain Mapping
Et d'ajouter le domaine http://www.formater.test en le déclarant comme primary domain
Maintenant l'url http://multisite.test/formater me renvoie directement sur http://www.formater.test et idem pour http://multisite.test/formater-en et http://en.formater.test
Par contre, on accéde toujours à l'administration via http://multisite.test/formater/wp-admin.
On peut configurer le réseau, pour que http://multisite.test/formater/wp-admin soit renvoyé vers http://www.formater.test/wp-admin.
Dans Admin du Réseau > Réglages > Domaine mapping, on désactive l'item :
Redirect administration pages to site's original domain
Il est possible que l'onglet domaine mapping ne soit pas accessible dans outils:
/wp-content/plugins/wordpress-mu-domain-mapping/sunrise.php dans le dossier wp-contentdefine('SUNRISE', 'on'); dans le fichier de configuration wp-config.php Domain Mapping globalement dans Admin du réseau > Réglages > Domain Mapping, déclarer comme serveur CNAME domain multisite.test
Pour ne pas perdre certains fichiers images, css ou js qui seront appelés du domaine en.formater.test ou www.formater.test mais ont pour domaine multisite.test, il faudra modifier le .htaccess.
<IfModule mod_headers.c>
# AUTORISER LE CROSS DOMAIN SUR multisite.test pour le chargement des scripts + css
Header set Access-Control-Allow-Origin http://multisite.test
# Autoriser le customizer wordpress à afficher un autre domaine
Header set X-Frame-Options "ALLOW-FROM http://multisite.test/"
</IfModule>
<FilesMatch "\.(eot|ttf|otf|woff|woff2|pdf)$">
<IfModule mod_headers.c>
SetEnvIf Origin "http(s)?:\/\/(.+\.)?(formater.test|multisite.test)$" AccessControlAllowOrigin=$0
Header set Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
Header set Access-Control-Allow-Methods "GET"
Header set Access-Control-Allow-Credentials "false"
</IfModule>
</FilesMatch>