Do you happen to have a folder in your root directory that’s called, as per your example, “site2?”
I’m thinking perhaps the web server is looking there. Although you are creating the websites as sub-directories of the root domain, there shouldn’t be any physical folders present.
No there isn’t any non wordpress folders in the root directory. If it helps I am pulling this from a Git repo. This code works on my local environment and in a staging/test server.
What does the not-found look like? WordPress or a server error?
It is a server error. White page black text.
1) Make ABSOLUTELY sure there isn’t a site2 folder
2) What’s in your .htaccess?
There are currently 5 sites on this multisite setup and only the main site works. I am absolutely sure that there are no subfolders by the names of the sites.
I thought it might have been an htaccess problem so I copied and pasted this from a previous forum post from Ipstenu for MultiSite subfolder setups.
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
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=301,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]
</IfModule>
# END WordPress
# Change PHP memory limit, time limit,
# max post size, and max upload file size
php_value memory_limit 256M
php_value max_execution_time 300
php_value upload_max_filesize 32M
php_value post_max_size 32M
You should always use the .htaccess WP wants you to use.
Go to yourdomain.com/wp-admin/network/setup.php
Use that one.
Getting a server error though means the problem is your server doesn;t understand Multisite and you’ll need to ask your host if they have ‘AllowOverride’ set to either ‘All’ or ‘Options All’ in your httpd.conf.
Ipstenu you pointed me in the right direction with the httpd.conf.
This server is a VM on our own local server and was pretty much a vanilla LAMP stack. I dug around in the httpd.conf and found that the ServerAdmin, and ServerName where not set. I also moved the DocumentRoot to html/domainname.com just for good measure.
One of those changes fixed it for me. Thanks guys.
Micah Mills