Modification de l'installation multisite de subdir en une structure de répertoire de base

4

Maintenant que WordPress 3.5 est supposé fonctionner avec les fichiers de base du sous-répertoire, j'ai décidé de déplacer ma configuration de développement local (sous-répertoire multisite) vers cette configuration.

Avance rapide et voici ce que j'ai:

wordpress (noyau 3.5)

wp-content (répertoire de contenu, configuré via WP_CONTENT_DIR et WP_CONTENT_URL )

.htaccess avec:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) C:\server\www\dev\wordpress/wp-includes/ms-files.php?file=$2 [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).*) C:\server\www\dev\wordpress/$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ C:\server\www\dev\wordpress/$2 [L]
RewriteRule . index.php [L]

wp-config.php avec:

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'dev.rarst.net');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

index.php avec:

define('WP_USE_THEMES', true);
require('./wordpress/wp-blog-header.php');

État:

  • L'administrateur réseau fonctionne à /wordpress/wp-admin/network/ mais tous les liens tentent de pointer sur /wp-admin/network/ avec les erreurs Forbidden avec The given path was above the root path: AH00127: Cannot map GET /wp-admin/network/ HTTP/1.1 to file
  • le site racine fonctionne à dev.rarst.net avec l'administrateur à dev.rarst.net/wordpress/wp-admin
  • les autres sites de sous-répertoires ( dev.rarst.net/* ) ont interrompu les téléchargements et que les liens vers les pages admin et autres ne les ont pas encore fournis.

La question en quelques mots - dans quelle direction dois-je me déplacer pour que tout fonctionne correctement?

Quels liens d’administration sont supposés appartenir à cette configuration (puisque le noyau est dans le sous-répertoire "réel" et que les sites sont dans le sous-répertoire "virtuel")?

    
posée Rarst 03.01.2013 - 21:45

1 réponse

5

Vos lignes .htaccess doivent ressembler à ceci:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) /wordpress/wp-includes/ms-files.php?file=$2 [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).*) /wordpress/$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ /wordpress/$2 [L]
RewriteRule . index.php [L]

.htaccess ne peut pas accéder aux emplacements situés en dehors de la racine du document. C'est pourquoi des chemins tels que C:\server\www\dev\ échouent. (Le code ci-dessus a été testé sur mon installation multisite localhost).

En raison du .htaccess rewrite, vous n'avez pas besoin de définir WP_CONFIG_DIR et WP_CONFIG_URL car ils sont calculés par WordPress en conséquence. Vous pouvez accéder à vos pages d’administrateur à http://dev.rarst.net/wp-admin ou http://dev.rarst.net/subsite/wp-admin

    
réponse donnée shea 03.01.2013 - 21:58

Lire d'autres questions sur les étiquettes