nativeInstallerwordpress-multisite

Configure WordPress Multisite to use subdirectories instead of subdomains

Before running the commands shown on this page, you should load the Bitnami stack environment by executing the installdir/use_APPNAME script (Linux and MacOS) or by clicking the shortcut in the Start Menu under “Start -> Bitnami APPNAME Stack -> Application console” (Windows). On OS X VMs, the installation directory is /opt/bitnami and OS X VM users can click the “Open Terminal” button to run commands. Learn more about the Bitnami stack environment and about OS X VMs.

NOTE: The Approach A sections referred to below do not apply to Bitnami native installers. Users of Bitnami native installers should refer only to the Approach B sections.


NOTE: These steps should be performed before creating a new site.

Approach A: Bitnami installations using system packages

Follow the steps below depending on your installation type:

  • Edit the installdir/wordpress/wp-config.php and modify the definition as shown below:

      define('SUBDOMAIN_INSTALL', false);
    
  • Edit the installdir/apache2/conf/vhosts/wordpress-vhost.conf file and replace the following block:

      # BEGIN WordPress Multisite
      # Using subdomain network type: https://wordpress.org/support/article/htaccess/#multisite
      RewriteEngine On
      RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
      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]
      # END WordPress Multisite
    

    With this:

      # BEGIN WordPress Multisite
      # Using subfolder network type: https://wordpress.org/support/article/htaccess/#multisite
      RewriteEngine On
      RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
      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]
      # END WordPress Multisite
    
  • Edit the installdir/apache2/conf/vhosts/wordpress-https-vhost.conf file and perform the same replacements as before.

  • Restart Apache to apply the changes:

      $ sudo installdir/ctlscript.sh restart apache
    

Approach B: Self-contained Bitnami installations

Follow the steps below depending on your installation type:

  • Edit the installdir/apps/wordpress/htdocs/wp-config.php and modify the definition as shown below:

      define('SUBDOMAIN_INSTALL', false);
    
  • Edit the installdir/apps/wordpress/conf/httpd-app.conf file and replace the existing URL rewriting rules so that they look like this:

      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]
    
  • Restart Apache to apply the changes:

      $ sudo installdir/ctlscript.sh restart apache
    
Last modification June 16, 2021