- uploaded 3.4.2 files to domain.com/wp/, setup /wp/wp-config.php, visited domain.com/wp/ to install
- logged in, installed WordPress Beta Tester plugin, set to bleeding edge nightlies, updated
- set 'site address' ('home' in db) to domain.com
- copied index.php from /wp/ to root, added '/wp' to require path
- verified site loading at domain.com
- added define('WP_ALLOW_MULTISITE', true); to /wp/wp-config.php
- deactivated WordPress Beta Tester plugin, visited Tools > Network Setup, chose sub-directories, clicked 'Install', was given the following:
1. Add the following to your wp-config.php file in /server-path-to-domain-root/wp/ above the line reading /* That’s all, stop editing! Happy blogging. */:
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'domain.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
2. Add the following to your .htaccess file in /server-path-to-domain-root/wp/, replacing other WordPress rules:
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [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).*) wp/$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ wp/$2 [L]
RewriteRule . index.php [L]
- logged in. appears fine; I'm at domain.com/wp/wp-admin/
- all current site links include '/wp'; network links in admin bar omit '/wp', and, other than 'view network' (just domain.com), 404
- if I visit domain.com/wp-admin/, url is rewritten to domain.com/wp/wp-admin/
- if I visit domain.com/wp/wp-admin/network/, I can access the network dashboard - but,
- all lefthand menu items link to /wp/wp-admin/network/* admin pages, but all admin bar links still omit '/wp' and 404
- if I visit 'Sites' (domain.com/wp/wp-admin/network/sites.php), 'Add new' link omits '/wp', and 404s
- if I visit 'Sites > Add New' (directly via the submenu), I'm at /wp/wp-admin/network/site-new.php and can enter new site settings, but the 'add site' form's action is for /wp-admin/network/site-new.php, and so it 404s on submission
- deleted .htaccess in wp install dir (as there wasn't one, prior to network setup), put those rewrite rules in root-level .htaccess instead
- went to site admin; I'm at domain.com/wp/wp-admin/
- same as before, all current site links include '/wp'; network links in admin bar omit '/wp', but this time they are accessible.
- if I visit domain.com/wp-admin/, it appears to work the same as domain.com/wp/wp-admin/ - all links and forms on the various admin pages include '/wp' in their urls, but they work the same as they do when you're at /wp-admin/
- I can create new sites just fine.
- visiting the original site admin, urls are '/wp/wp-admin/...'; after creating a new site ('site1') and visiting domain.com/site1 admin, all urls are '/site1/wp-admin/...'
- all site frontends and admins load just fine, and everything appears to work correctly.
* conclusion: rewrite rules are correct, but ought to be included in the root-level .htaccess file, not in the WordPress install directory (per this comment: http://core.trac.wordpress.org/ticket/19796#comment:38 )