Skip to Content

Plugin Review Network

Plugin Review Network

an eye on the best wordpress plugins
Show Sidebar Hide Sidebar
[+] Sidebar [-] Sidebar
Plugin:
Rated:
92%
4.6 Stars (97 votes)

Home

WP.Org

ReadMe

Support
  • Author:
    Donncha O Caoimh
Version: 0.5.5.1
Requires: WP 3.1
Last Updated:3445 days ago
Downloads:560952
Installations: 8,000+
Tags:
    domain-mapping, multisite, wordpressmu
Download Plugin Package

WordPress MU Domain Mapping

Released on August 11, 2008.
Download Plugin Package

Version: 0.5.5.1

Map any blog/site on a WordPressMU or WordPress 3.X network to an external domain.

  • Description
  • Changelog
  • Installation


This plugin allows users of a WordPress MU site or WordPress 3.0 network to map their blog/site to another domain.

It requires manual installation as one file must be copied to wp-content/. When upgrading the plugin, remember to update domain_mapping.php and sunrise.php. Full instructions are on the Installation page and are quite easy to follow. You should also read this page too.

Super administrators must configure the plugin in Super Admin->Domain Mapping. You must enter the IP or IP addresses (comma deliminated) of your server on this page. The addresses are purely for documentation purposes so the user knows what they are (so users can set up their DNS correctly). They do nothing special in the plugin, they're only printed for the user to see.

You may also define a CNAME on this page. It will most likely be the domain name of your network. See below for some restrictions and warnings.

Your users should go to Tools->Domain Mapping where they can add or delete domains. One domain must be set as the primary domain for the blog. When mapping a domain, (like 'example.com') your users must create an A record in their DNS pointing at that IP address. They should use multiple A records if your server uses more than one IP address. If your user is mapping a hostname of a domain (sometimes called a "subdomain") like www.example.com or blog.example.com it's sufficient to create a CNAME record pointing at their blog url (NOT IP address).

The login page will almost always redirect back to the blog's original domain for login to ensure the user is logged in on the original network as well as the domain mapped one. For security reasons remote login is disabled if you allow users to use their Dashboard on the mapped domain.

Super admins can now choose to either allow users to setup DNS ANAME records by supplying an IP (or list of IP addresses) or set a CNAME but not both (entering a CNAME for the end user voids the use of IP's)

There is a lot of debate on the handling of DNS using CNAME and ANAME so both methods are available depending on your preference and setup.

Things to remember:

  • CNAME records that point to other CNAME records should be avoided (RFC 1034 section 5.2.2) so only tell your end users to use your chosen domain name as their CNAME DNS entry if your domain name is an ANAME to an IP address (or addresses)
  • Only use the CNAME method if your main domain is an ANAME of an IP address. This is very important. How do you know? Check your dns or ask your hosting company.
  • Giving your users the option to just use your chosen domain name and not an IP (or list of IP's) to set as their CNAME will make administration of your WordPressMU blog platform or WordPress 3.0 network easier, an example of this would be purchasing/deploying a new server or indeed adding more servers to use in a round robin scenario. Your end users have no need to worry about IP address changes.
  • Finally, telling your end users to use an ANAME IP or CNAME domain name is up to you and how your systems are deployed.
  • Further Reading: http://www.faqs.org/rfcs/rfc2219.html
  • For localization: place translation files (ie. wordpress-mu-domain-mapping-xx_XX.mo) in the directory wp-content/plugins/wordpress-mu-domain-mapping/languages. You will probably have to create that directory yourself.

0.5.4

  • WordPress 3.1 compatibility.
  • Localization fixes.
  • IDN warnings about using punycode format.
  • Fixed delete domain redirect.
  • Better looking setup page.
  • Better support for sites using SSL backends.

0.5.3

  • Check input on admin page.
  • Allow the primary domain to be ignored.
  • Lots more bug fixes.

0.5.2

  • Added www support
  • Now supports WordPress 3.0
  • Updated readme/instructions

0.5.1

  • Added Cpanel instructions, props Marty Martin (http://mearis.com)
  • Filter more urls, props Ryan Waggoner (http://ryanwaggoner.com)
  • Added CNAME support, props Martin Guppy
  • Added check for COOKIE_DOMAIN, props Scott, http://ocaoimh.ie/wordpress-mu-domain-mapping-05/comment-page-1/#comment-671821

0.5

  • Works in VHOST or folder based installs now.
  • Remote login added.
  • Admin backend redirects to mapped domain by default but can redirect to original blog url.
  • Domain redirect can be 301 or 302.
  • List multiple mapped domains on site admin blogs page if mapped
  • Bug fixes: set blog_id of the current site's main blog in $current_site
  • Bug fixes: cache domain maps correctly, blogid, not blog_id in $wpdb.

0.4.3

  • Fixed bug in content filtering, VHOST check done in admin page, not sunrise.php now.

0.4.2

  • Some actions are actually filters
  • Change blog url in posts to mapped domain
  • Don't redirect the dashboard to the domain mapped url
  • Handle multiple domain mappings correctly.
  • Don't let someone map an existing blog
  • Only redirect the siteurl and home options if DOMAIN MAPPING set
  • Delete domain mapping record if blog deleted
  • Show mapping on blog's admin page.

0.4.1

  • The admin pagesnon domain mapped blogs were redirected to an invalid url

0.4

  • Redirect admin pages to the domain mapped url. Avoids problems with writing posts and image urls showing at the wrong url. Updated documentation on IP addresses for site admins.


  1. Install the plugin in the usual way into the regular WordPress plugins folder. Network activate the plugin.
  2. Move sunrise.php into wp-content/. If there is a sunrise.php there already, you'll just have to merge them as best you can.
  3. Edit wp-config.php and uncomment or add the SUNRISE definition line. If it does not exist please ensure it's on the line above the last "require_once" command. define( 'SUNRISE', 'on' );
  4. As a "super admin", visit Super Admin->Domain Mapping to create the domain mapping database table and set the server IP address or a domain to point CNAME records at.
  5. Make sure the default Apache virtual host points at your WordPress MU site or WordPress 3.0 network so it will handle unknown domains correctly. On some hosts you may be required to get a dedicated IP address. A quick check: in a web broswer, type in the IP address of your install. If you are using CPanel, use the Park a Domain menu to set the mapped domain to your main installtion.
  6. Do not define COOKIE_DOMAIN in your wp-config.php as it conflicts with logins on your mapped domains.

Illustrated installation instructions can be found here but you can ignore the instructions to place domain_mapping.php in mu-plugins. Thanks Otto.

Configuration

On Super Admin->Domain Mapping you can configure the following settings:

  1. "Remote Login" can be disabled. Useful if you're hosting totally separate websites.
  2. "Permanent redirect" uses a 301 redirect rather than 302 to send visitors to your domain mapped site.
  3. "User domain mapping page" allows you to disable Settings->Domain Mapping that the user uses.
  4. "Redirect administration pages to network's original domain (remote login disabled if this redirect is disabled)" - with this checked, if a user visits their dashboard on a mapped domain it will redirect to the dashboard on the non mapped domain. If you don't want this, remote login will be disabled for security reasons.
  5. "Disable primary domain check. Sites will not redirect to one domain name. May cause duplicate content issues." - ignore the primary domain setting on your sites. The same content will be available on multiple domains and may cause problems with Google because of duplicate content issues.

Super Admin->Domains allows you to edit the domains mapped to any sites on your network.

For Cpanel users

If your domain uses the nameservers on your hosting account you should follow these instructions. If the nameservers are elsewhere change the A record or CNAME as documented above. Add a wildcard subdomain/virtual host record to your site's DNS record in Web Host Manager (WHM). If you do not have access to WHM, you must email your web host and ask them to make this one change for you. Should be no problem:

  • Go to "Edit DNS Zone" and select the domain of your WPMU installation and click "Edit".
  • Below "Add New Entries Below This Line", enter in the first box (Domain) an asterisk: "*".
  • The second box, TTL, should be "14400".
  • The third box should be "IN".
  • Select A Record Type from the drop down "A".
  • And in the last box, paste in the IP address of your website/network.

From Cpanel, click on the "Parked Domains" under the "Domains" section:

  • Under "Create a New Parked Domain" enter the domain name you want to add to your network.
  • Click the "Add Domain" button.
  • It should add the domain to the list of parked domains and under "Redirect to" it will say "not redirected". That is OKAY.

Now you're ready to do your domain mapping.


 

Click here to cancel reply.

Click here to cancel reply.


*

*


Please copy the string 0YDN8E to the field below:

Home | Sitemap | Contact
Network Skin Theme for BioShip by WordQuest
Password Reset
Please enter your e-mail address. You will receive a new password via e-mail.