web-dev-qa-db-fra.com

Wordpress multisite dans le sous-répertoire, pas root, et supprimer le dossier de base de l'URL

Je me trompe peut-être, mais je ne trouve pas de solution au besoin suivant: je veux installer WordPress dans un sous-dossier de mon répertoire www, disons www/wp. Je souhaite ensuite ajouter deux blogs au réseau multisite appelé foo et bar . Quand je le fais, ils se retrouvent avec l'URL:

  • http://example.com/wp/foo
  • http://example.com/wp/bar

Je voudrais plutôt qu'ils soient situés à:

  • http://example.com/foo
  • http://example.com/bar

Mais je fais pas je veux un WP site fonctionnant au home/root:

  • http://example.com

Parce que je vais exécuter une application différente là-bas (sinon, je voudrais simplement installer WordPress à la racine et le faire) avec cela.

Comment est-ce que je configure ceci?

1
Chris

Installez WordPress dans son propre répertoire . Suivez les instructions sur le lien fourni. Vous devez installer deux fichiers WP dans le répertoire racine - index.php et .htaccess. Ceux-ci peuvent ou non interférer avec votre site Web existant.

1
user42826

J'ai récemment essayé de faire de même et j'ai trouvé une solution qui fonctionnait pour moi.

Tout d’abord, placez votre configuration multisite dans un sous-répertoire:

  • www.mondomaine.com/multi/
  • www.mondomaine.com/multi/site1
  • www.mondomaine.com/multi/site2

Deuxièmement, ajoutez un répertoire à la racine:

  • www.mondomaine.com/site1

Dans ce répertoire nouvellement créé (/ site1 /), vous pouvez ajouter un .htaccess pour réécrire toutes les demandes sur le multisite. Je ne suis pas un expert en la matière, mais ce code a fonctionné pour moi dans le fichier .htaccess:

RewriteEngine On RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(index\.php)$ /multi/$1   

RewriteRule ^(.*)$ /multi/$1

WordPress contient toujours de nombreuses références dans la base de données vers votre sous-sous-répertoiresite1. La prochaine chose à faire est donc de modifier toutes les entrées de la base de données. Vous pouvez utiliser ce script pour cela.

Maintenant, tout devrait fonctionner et lorsque vous visitez www.mydomain.com/site1, vous devriez voir votre sous-site multisite. Le seul problème est que, parfois, vous ne pouvez pas vous connecter en raison de conflits de domaines liés aux cookies. Pour résoudre ce problème, supprimez tous les cookies de domaine (j'ai utilisé les outils de développement de chrome). Deuxièmement, ajoutez ces lignes au fichier wp-config.php:

define('ADMIN_COOKIE_PATH', '/'); 

define('COOKIE_DOMAIN', '');

define('COOKIEPATH', ''); 

define('SITECOOKIEPATH', '');

J'espère que cela fonctionne pour vous.

1
andreboekhorst