go into network admin > sites > (select the problem site) > users > “add user x to this site”
users have to be granted access via that page to have priv. to that site’s dashboard
i think that should solve it for you
I think the problem is more that the URLs are borked.
http://client.mydomain.comjapan
Huh. Sounds like you’re missing the trailing slashes. Does that happen on all sites?
@ davidsword — The users (i.e. japanadmin) were automatically added to their respective sites when I entered their E-mail addresses as the admin user of the site. I just confirmed this in the Network Admin dashboard — “japanadmin” is already associated with the “japan” site.
@ Ipstenu — Yes, it happens on all the sites, however that problem only manifests itself with the links (although it may somehow be indicative of the larger issue). I have already tried typing the exact, correct URL into the address bar, such as:
http://client.mydomain.com/clientname/blogname/japan/wp-admin
This is what gives me the error I described.
I also tried:
http://client.mydomain.com/clientname/blogname/japan
That takes me to the Main (Global, aka Network) website and says it can’t find the japan
page. So its clearly not processing the sites correctly, somehow — but again, this is when I type the correct URLs!
Still need help.. anyone?
Possible Bug in MultiSite?
I think the real problem is that the .htaccess
file the MultiSite installation generates is NOT correct — due to the fact that my WordPress installation is NOT at the domain root, like most “subdirectory” configurations I’ve seen, but instead the Main (Global/Network) Site is actually itself installed in a subdirectory, /clientname/blogname/
!
This seems like a scenario WP ought to handle, but unfortunately, it does not seem to. What I can’t figure out is: Can I fix this by tweaking my .htaccess
file? Or is this a problem with the WordPress MultiSite code?
Here are the additions to my wp-config.php
:
// Custom additions to enable Multisite support
define('WP_ALLOW_MULTISITE', true);
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
$base = '/clientname/blogname/';
define('DOMAIN_CURRENT_SITE', 'client.mydomain.com');
define('PATH_CURRENT_SITE', '/clientname/blogname/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
/* That's all, stop editing! Happy blogging. */
And here’s my .htaccess
file:
RewriteEngine On
RewriteBase /clientname/blogname/
RewriteRule ^index\.php$ - [L]
# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) 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,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
Sure hope someone can help me figure this out!
Moderator
Jan Dembowski
(@jdembowski)
Forum Moderator and Brute Squad
Site is actually itself installed in a subdirectory, /clientname/blogname/!
I’ve never tried that (or even considered trying that) but I’m surprised that that even can work.
From this document
http://codex.wordpress.org/Before_You_Create_A_Network#WordPress_Settings_Requirements
You cannot choose Sub-domain Install (for a domain-based network) in the following cases:
- The WordPress URL contains a path, not just a domain. (That is, WordPress is not installed in a document root, or you are not using the URL of that document root.)
See the first point? I’m pretty sure that describes your installation… I may be misreading the requirements though.
No, it’s not a ‘bug’ in Multisite, or everyone would experience it.
Re-reading…Jan, I believe you’re right.
Setup a standard, clean install of WordPress 3.3.1 at the following (demo) location:
http://client.mydomain.com/clientname/sitename/
and
define(‘DOMAIN_CURRENT_SITE’, ‘client.mydomain.com’);
define(‘PATH_CURRENT_SITE’, ‘/clientname/blogname/’);
Tell the tale.
WordPress doesn’t let use you subdomains, if you have WordPress installed ANYWHERE except the root of your domain.
If you want to use subdomain.example.com, the ONLY place you can install WP is in example.com. Part of this is because of how web servers (esp apache) work.
Now if you want to have your URLs be client.yourdomain.com/japan/ and so on, you MUST install at client.yourdomain.com
You can’t map nested subfolders like that, without some serious rejiggering of your httpd.conf file and know a lot about vhosts.
Well, it seems to be working now. Or rather, new sites that I create seem to be working; so I just deleted the broken ones and recreated them.
The only thing I know of that I changed was that I had forgotten to make the blogs.dir
directory writable by the web server; however, I can no longer duplicate the problem, so I don’t know if that’s necessarily it.
@ Jan Dembowski — thanks for the ideas. I can now affirm that this particular configuration DOES work, if everything’s configured correctly — though I don’t know for sure that the permissions problem was the original cause, since I can’t duplicate the issue.
@ Ipsetenu — Just want to clarify/reiterate, for the benefit of others who might be trying to achieve something similar, that multisite / network support DOES work when the root WP installation is in a subdirectory of your domain root, so long as the configuration is correct in the first place.
[Note: It does seem like the referenced passages from WP documentation imply that what I was trying to do was not supported — yet it seems like that is in fact NOT the case, as my installation is now working as desired. I had seen those passages previously, but when I read them before they seemed to refer to installation of WP in a subdirectory but running from your domain root, which is not what I was trying to do here. But my setup is working now, so it’s obviously possible. Go figure.]
Thanks so much for everyone’s help! Helped me track down the problem, anyway.
You’re confusing what Jan and I said.
You CAN use WP in any folder you want. As long as that folder is in the URL of your site. Okay?
If you install in http://client.mydomain.com/clientname/ then your URLs will be http://client.mydomain.com/clientname/sitename/
That’s… it. That’s how Multisite works.
You’re right, I misunderstood what you were saying. My mistake was that I missed the part about “subdomains” as well. Subdomains do not apply to my setup; the “client” in http://client.mydomain.com/
just happens to be the location where I store many of my projects, it does NOT point to a WordPress installation.
So for posterity, let me clarify that my proposed setup was equivalent to the following:
http://prefix.mydomain.com/subdirectory/wordpress/subsite
Its the /subdirectory/wordpress/
part that messed me up, but it seems to be working just fine now using a “Subdirectory Install” (NOT a Subdomain install).