Keep in mind that creating sites in subdirectories doesn’t actually create any subdirectories on the file system, so you won’t see any new folders. It is all done within the database except maybe a folder under wp-content/uploads
for Media files..
Add the following to wp-config.php
(before any require
or include
statements..)
1
2/**
3 * Allow WordPress Multisite network
4 */
5define( 'WP_ALLOW_MULTISITE', true );
Once you have it enabled, go back to Dashboard > Tools > Network Setup and confirm the settings. You’ll then be asked to edit the wp-config.php
and .htaccess
files again
1// wp-config.php
2/**
3 * Allow WordPress Multisite network
4 */
5define( 'WP_ALLOW_MULTISITE', true );
6define('MULTISITE', true);
7define('SUBDOMAIN_INSTALL', false); // Set this to true for subdomain sites
8define('DOMAIN_CURRENT_SITE', 'mydomain.net');
9define('PATH_CURRENT_SITE', '/');
10define('SITE_ID_CURRENT_SITE', 1);
11define('BLOG_ID_CURRENT_SITE', 1);
Replace the existing WordPress related rules with the following
# .htaccess
# BEGIN WordPress
# The directives (lines) between `BEGIN WordPress` and `END WordPress` are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
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).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
</IfModule>
# END WordPress
You can set the SUBDOMAIN_INSTALL
option to true
or false
and that’ll change the option you get when creating a new site. By default, it starts with installs in subdomains. I had to go in and change the value to false
in order to create new sites in subdirectories
1define('SUBDOMAIN_INSTALL', false);
The above is all you need. You should now be able to go to https://mydomain.net/wp-admin/network/ and create new sites, update all plugins and update all themes etc.
You get too many redirects when going to the Admin of the new site you just created
ERR_TOO_MANY_REDIRECTS
Check your .htaccess
file. In my case i had added the code for subdomains and had later switched to subfolders. The .htaccess
snippet for both is different.
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).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]