web-dev-qa-db-fra.com

Comment exécuter une installation multisite de sous-répertoires sous un sous-domaine

Je suis sur un VPS exécutant Nginx en tant que serveur principal.

Je souhaite configurer une installation WordPress multisite de sous-répertoires, mais je souhaite également que tous les sous-sites appartiennent à un même sous-domaine. Par exemple:

Mon site principal:

domain.com

Sous-sites:

clients.domain.com/site1
clients.domain.com/site2
clients.domain.com/site3

Je réalise que je peux installer une autre copie de WordPress sous clients.domain.com et l'utiliser comme maison multisite. Cependant, puisque domain.com est déjà en cours d'exécution, WordPress me semble inefficace en termes de gestion et d'espace disque, d'autant plus que je souhaite uniquement servir une page de connexion au la racine de ce sous-domaine de toute façon.

Je réalise également que je peux rediriger toutes les demandes de clients.domain.com vers domain.com, mais je ne souhaite pas que les sous-sites ou leurs fichiers associés soient accessibles via domain.com/site1. Les sous-sites doivent reconnaître leur site parent comme étant domain.com.

Quelle est la meilleure méthode pour y remédier?

1
George Reith

Ceci est résolu, notez que j'utilise Wordpress 3.8 au moment de la rédaction de ce document. Si vous êtes du futur, ces plugins risquent de ne pas fonctionner avec votre version actuelle, veuillez d'abord vérifier la compatibilité.

Le plugin WP Multi Network fournit cette fonctionnalité. Il vous permet essentiellement de créer des réseaux multi-sites imbriqués. J'ai mon réseau principal à domain.com et créé un autre réseau appelé Clients à clients.domain.com.

Maintenant, domain.com pointe vers mon site principal, mais tout sous-site que je crée à partir du réseau Clients prendra une URL au format clients.domain.com/sitename/. Tous les réseaux partagent la même base de données.

J'ai utilisé la configuration multisite du sous-répertoire wordpress standard pour Nginx ( http://codex.wordpress.org/Nginx ) et j'utilise le plugin Nginx helper pour générer mes règles map{}.

J'espère que cela aide tous ceux qui ont ce problème. Vous pouvez maintenant créer plusieurs réseaux multisites dans différents sous-domaines (ou différents domaines) partageant une base de données et un panneau d'administration uniques.

2
George Reith

Vous pouvez utiliser un programme appelé sunrise.php pour modifier le mode de traitement. WordPress mappe la demande sur un blog de votre réseau. J'ai expliqué une solution possible dans cette réponse . La clé consiste à analyser votre requête clients.domain.com/site1/some/post/ dans le domaine clients.domain.com et le chemin /site1 et à la comparer aux colonnes domain et path dans la table wp_blogs. Sur cette façon, c'est à vous de décider comment gérer les sous-domaines et les chemins d'accès comme identifiant pour les blogs. Avec ces données, vous devez configurer certaines variables globales telles que $current_blog et $current_site.

Lorsque vous utilisez une installation de sous-domaine, vous ne devez pas nécessairement modifier l'interface graphique d'administration. Créez simplement un blog avec le domaine clients.domain.com après cela, accédez à l'écran d'édition du blog et modifiez le chemin. Ce n'est pas très confortable mais ça marche.

Il est possible que vous ayez rencontré des conflits de chemins lorsque vous avez utilisé différents niveaux de chemins en tant que chemins racine pour les blogs. Comme sunrise.php est appelé très tôt, le chemin du blog l'emporte toujours sur le chemin du permalien.

0
David

Voici une solution très simple:

  1. installer et configurer le sous-répertoire WP multisite pour clients.domain.com
  2. installer plug-in Domain Mapping
  3. créez tous vos sous-sites
  4. Domain mappez l'un de vos sous-sites sur domain.com
0
user42826