The Domain Access project is a suite of modules that provide tools for running a group of affiliated sites from one Drupal installation and a single shared database. The module allows you to share users, content, and configurations across a group of sites such as:
<-- can use any domain string
<-- treats non-standard ports as unique
By default, these sites share all tables in your Drupal installation. The Domain Prefix module (for Drupal 6) allows for selective, dynamic table prefixing for advanced users.
The module uses Drupal's Node Access system to determine what content is available on each site in the network. Unlike other multi-domain modules for Drupal, the Domain Access module determines user access based on the active domain that the user is viewing, rather than which group or site the user belongs to. For more information about Node Access in Drupal, see http://api.drupal.org/api/group/node_access/7
This module uses some advanced Drupal concepts and requires that you understand and control your site's DNS configuration. See this case-study or this more recent Row Eleven Wine Co. post for more details about using Domain Access.
You can also watch video of the DrupalCON Paris session "Managing Multiple Sites with Domain Access" (from 2009).
If you are looking for a module to provide subdomains to users and groups and do not need to affiliate content, take a look at Subdomain.
Upgrading to Drupal 7
If you use Domain Access on Drupal 6, these steps are required for a smooth site upgrade.
For users of 6.x.1 or 5.x., See the Domain Access UPGRADE.txt for complete instructions for upgrading to 6.x.2 or 7.x.
The 7.x.2 branch was designed to allow for a quick transition from Drupal 6 to Drupal 7. Support for the 7.x.2 branch has been discontinued.
Please read the upgrade instructions for users of 7.x.2 before updating the code to a 7.x.3 release.
The Domain Access module works by itself and needs no additional modules. Included in the download are these helper modules that extend the features of Domain Access.
Included in the Domain package for Drupal 6.x.2.0
- Domain Alias 6.x.2 and higher only by bforchhammer. Allows you to specify subdomain aliases and domain name patterns for domain entries so that multiple hostnames are matched on a single domain entry.
- Domain Configuration -- Allows you to change select system variables for each subdomain, such as offline status, footer message and default home page.
- Domain Content -- Provides a content administration page for each subdomain, so that affiliate editors can administer content for their section of the site.
- Domain Navigation -- Supplies a navigation block with three themes. Creates menu items for each subdomain, suitable for using as primary or secondary links.
- Domain Path -- Enables custom path aliases per domain.
- Domain Prefix -- Provides a user interface for enabling select database table prefixing for use with subdomains. The Drupal 5 version is not fully functional on pgSQL, but Drupal 6 version is.
- Domain Settings -- Exposes domain-sensitive variable settings to most configuration forms. Requires Domain Conf.
- Domain Source -- Allows editors to set a primary source domain when links are written to content from other domains.
- Domain Strict -- Forces users to be members of domains in order to view content. This is a sample extension module that uses the API.
- Domain Theme -- Allows separate themes, theme settings and colors for each subdomain.
- Domain User -- Allows for the automatic creation of subdomains for registered users.
- Domain Views by mrichar1 and nonsie -- Provides Views integration for Views 5.x.1 and 6.x.2 or higher.
Linked items are stand-alone modules in the Drupal 7 release.
To speed development of new features, I will be spinning certain aspects of the Domain Access suite into separate projects, starting after the stable 6.x.2.0 release.
- Domain CTools. Provides additional features via the CTools API.
- Domain Menu Block. Allows per-domain creation of consistent Menu Blocks. (Drupal 7 only; requires 7.x.3).
- Domain Path. Allows per-domain path aliases for nodes. (Drupal 7 only).
- Domain Variable. Replaces Domain Configuration with an i18n-friendly implementation of the Variable API.
A number of modules have been contributed by other developers to extend the features of Domain Access.
Credits and examples
Development is sponsored by Palantir.net.
Developer's API (Drupal 6) is online at http://api.therickards.com/api/domain