Table des matières

Virtualhosts et mapping sites Wordpress

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

Création des virtualHosts

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:

Contenu des fichiers Apache

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.

Mapping dans Wordpress

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

domaine mapping

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 :

Remarques

Il est possible que l'onglet domaine mapping ne soit pas accessible dans outils:

domain mapping reseau

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>