The agency I work for recently converted a client with numerous, restaurant sites over to a WordPress multisite install. When we set it up to work on a staging server we used a “staging” subdomain for each individual site. The default functionality is to work on a root install of WordPress but this wasn’t going to work when the site that served as the root for the WordPress install was also installed on a “staging” subdomain.
The Root WordPress Install
We’re going to use my most recent experience as an example. In this case, the root WordPress install was set up as
staging.example.com. Which, in this case, is stored in a “staging” subdirectory on the server and just uses a subdomain to point to it. With this setup the other staging domains would point to
The Other Sites
When it comes time to point the other domains at the root install I used a custom CNAME in the DNS settings to point to the root install.
staging.example-two.com. 28800 IN CNAME staging.example.com.
When the DNS propogates the second subdomain will point to the same server as the root install but it won’t be pointing to the correct subfolder. In order to accomplish this we have to configure the server to direct the new domain name to the correct, “staging,” subfolder. The server running the root install was using cPanel so this was accomplished by logging into cPanel and creating a new “addon domain” to point
staging.example-two.com to the right folder.
In the new window we enter the Domain name (staging.example-two.com), FTP username (not really important), document root (The location of the root install — public_html/staging) and password (not really important either, but should be secure).
Once saved, this will create the DNS settings necesary to point the new domain at the root install. When the time comes to remove the “staging” prefix and launch the sites it’s as easy as moving the root install into the
public_html folder, deleting these original entries and then adding new ones that point the
public_html folder instead of the
This worked in our case. I’m not sure how it works with other software like Plesk. Or worse on a server with no software at all that has to be configured via the command line. If you have something to add to this, please let me know by leaving a comment.