This is exactly what multisite is for. It’s quite flexible and allows you to host multiple domains, sub-domains to various domains (or a single domain) or any combination of that.
A common setup is to have a top level domain assigned to the network of sites (not absolutely required). I use it basically as a place holder/staging area.
domain-a.com
I then have my primary domain as a separate site but administered through domain-a.com/wp-admin
(regarding network admin, you will still administer domain-b.com
thru domain-b.com/wp-admin
)
domain-b.com
I then have two different sites running running from sub-domains of domain-b, such that a site each at:
sub-1.domain-b.com
, andsub-2.domain-b.com
Lastly, the remainder of the web sites are installed on completely different domains but all under the same multi-install. Domains
domain-c.com
,domain-d.com
, etc.
Behind the process
It’s pretty painless as it’s designed to be an extension of your current setup. The main difference being that plugin and theme management is handled at the network level (ie within the multisite admin area). There is a decision that must be made early on with the type of install and the choices are subdomain and subdirectory. I have only setup the subdomain type which means that all sites are technically available under a subdomain of the main site (such that using the above examples:
domain-b.domain-a.com
domain-c.domain-a.com
etc
although the subdomain part is completely configurable and doesn’t have to relate to the actual domain name. You then use a domain plugin to manage the redirects of where the domains fall (ie which part of the multisite the resolve).
a basic setup
For example, to setup a basic multisite install you would tackle it as follows:
domain registrar
- register a (new) domain name
- forward the DNS to your web host
web host provider (thru cpanel)
- create an add-on domain and install it as a subdirectory of an existing domain and
- point the add-on to that directory
web host provider (thru network multisite)
- create a new site (this creates the additional database tables in the wordpress database for the additional site)
- allocate the domain to the site
- navigate to and pending domain propagation, visit the site in all it’s glory