Maintenant que WordPress 3.5 est supposé fonctionner avec les fichiers principaux 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 ce que j'ai est la suivante:
wordpress
(3.5 core)
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');
Statut:
/wordpress/wp-admin/network/
, mais tous les liens tentent de pointer vers /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
.dev.rarst.net
avec admin à dev.rarst.net/wordpress/wp-admin
dev.rarst.net/*
) ont des envois interrompus, et les liens vers admin et autres ne les ont pas encore obtenus.La question en bref - dans quelle direction dois-je aller d’ici pour que tout fonctionne?
Quels liens administratifs sont même supposés être avec cette configuration (puisque le noyau est dans le sous-répertoire "réel" et que les sites sont dans le sous-répertoire "virtuel")?
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 en dehors de la racine du document, c’est pourquoi les chemins tels que C:\server\www\dev\
échouent. (Le code ci-dessus a été testé sur mon installation multisite localhost).
En raison de la réécriture de .htaccess
, vous n'avez pas besoin de définir WP_CONFIG_DIR
et WP_CONFIG_URL
car ils sont calculés en conséquence par WordPress. Vous pouvez accéder à vos pages d’administration à http://dev.rarst.net/wp-admin
ou http://dev.rarst.net/subsite/wp-admin
.