I have seen quite a few people struggling with trying to make WordPress Multi Site work with their BlueHost installation. (BlueHost now fully supports wildcard subdomains) This comes mostly from the fact that people have an older site and panic when WordPress tells them they cannot use subdirectories.

Don’t panic! You *CAN* use subdirectories and it will work. You can use wildcard subdomains as well. You simply need to create a *.yourdomain.com record using the Subdomains icon in the cPanel.

First things first. We need to setup WordPress Multi Site:

First, disable all plugins. You can re-enable them again after multi-site has been configured.

In order to make this work, WordPress must be installed at the root level of the domain (regardless of whether the domain is an addon domain or primary domain). Example, if your WordPress install is at mydomain.com then it will work. If your WordPress is installed at mydomain.com/myblog it will not work. This is a default setting/limitation of WordPress Multi Site.

Edit the wp-config.php and add the following line *before* the line which says: /* That’s all, stop editing! Happy blogging. */ :

/** Enable or disable Worpress Multi-site features **/
define('WP_ALLOW_MULTISITE', true);

Then log into the Dashboard, go to Tools > Network, and select SubDirectories and click Install.

You will be given a page with code which needs to be copied and then added to the wp-config.php file first, and then it will also supply code which needs to be added to the .htaccess. Before you do any editing, it would be best to backup your current wp-config.php and .htaccess files, in case you accidentally break something.

You also want to take a quick break to go create a blogs.dir directory inside the wp-content/ directory. This will be needed for the additional sites.

The code is:

define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false );
$base = '/';
define( 'DOMAIN_CURRENT_SITE', 'www.yourdomain.com'; );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

If the .htaccess is blank or if you don’t have one, just create one and paste the provided code into it. If there is already code in the .htaccess, look for a part which looks something like this:

#BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Remove the code between the #BEGIN WordPress, and the #END WordPress parts and paste the provided code into the gap between them. The provided code may be generated differently depending on how your site is setup, so I have not pasted the code in here, but you should see it in your WordPress Dashboard when you reach this point.

After adding the needed code, click the “Log In” option to refresh your Administration Panel. If you have problems logging back in, please clear your browser’s cache and cookies.

Here is the default WordPress.org article for setting this up: http://codex.wordpress.org/Create_A_Network

*Note that, if you have an existing installation which is over 30 days old, WordPress will try to prevent you from setting up SubDirectories. See the following article to find out why, and how to work around it: http://journalxtra.com/2010/07/how-to-force-multi-site-to-use-subdirectories/

Between the above two guides, you should be able to make a perfectly functioning WordPress Multi Site installation on BlueHost… or almost any host, for that matter.

For more support, or to interact with other users using WordPress MultiSite on BlueHost, see: http://www.bluehostforum.com/showthread.php?20773-WordPress-3.0&highlight=multisite

If you start having problems with performance, be sure to check out this article: http://wordpress.shadowlantern.com/reducing-cpu/

Be Sociable, Share!