Setup sub-directories Multisite
How to setup a sub-directory WordPress Multisite network
How to setup a WordPress Multisite network
In this how-to we’ll describe a sub-directories Multisite setup. Assuming you’ve already created and setup a WordPress site using a wordpress-runtime image as a base, proceed with the following steps:
1. Enable Nginx rewrite rules for multisite
Simply add STACK_MULTISITE_RULES=subfolder
to your
environment
variables.
2. Locate the application.php file in your site’s source project
You should find it in the config
directory, at the following path: <project_root>/config/application.php
3. Allow a Multisite setup to be activated
In the application.php
file, right before a line saying Config::apply();
, add the following:
Config::define('WP_ALLOW_MULTISITE', true);
4. Build and redeploy the site with the change you’ve just made
5. Activate the Multisite setup
Log in to your site’s WordPress admin panel, and navigate to Tools
-> Network Setup
. The url should be something like:
<yoursite.com>/wp/wp-admin/network.php
.
There you can choose between a sub-domain Multisite setup or a sub-directories one. Choose sub-domain Multisite setup, but make sure it is what you want, as it is a hassle to change later.
There are a few other things you can configure such as the Network Title
and Network Admin Email
.
After you are done with those, press the Install
button.
You’ll then be presented with instructions on how to finish the setup, but we’re going to use a different, albeit similar configuration, so you may ignore them.
6. Add the final configuration
In the application.php
file you edited earlier, also add the following snippet, right after the WP_ALLOW_MULTISITE
line which you’ve added earlier:
Config::define('MULTISITE', true);
Config::define('SUBDOMAIN_INSTALL', false);
Config::define('DOMAIN_CURRENT_SITE', env('DOMAIN_CURRENT_SITE') ?: explode(',', env('STACK_ROUTES'))[0]);
Config::define('PATH_CURRENT_SITE', env('PATH_CURRENT_SITE') ?: '/');
Config::define('SITE_ID_CURRENT_SITE', env('SITE_ID_CURRENT_SITE') ?: 1);
Config::define('BLOG_ID_CURRENT_SITE', env('BLOG_ID_CURRENT_SITE') ?: 1);
7. Build and redeploy the site again, with the lines you’ve just added
8. Log out and in again to the site’s WordPress admin panel
9. Navigate to the Network Admin -> Sites section
A new button with the text My Sites
should have appeared in the header bar of the admin panel. Hover on it, to activate the dropdown menu. Hover on to the Network Admin
entry from the dropdown menu, and select Sites
from the additional sub-menu.
If you can’t find it, the URL should be something similar to <yoursite.com>/wp/wp-admin/network/sites.php
.
From here you will be able to manage your (multi) Sites.