Sites turns a single Drupal installation into a multi-site platform. Each "site" is a plugin-defined context that scopes content, configuration, URL generation, permissions, and language — all within one codebase and database. No separate Drupal instances, no shared-files multisite complexity.

Features

  • Plugin-based site definitions — implement a lightweight PHP class to define a site's identity and rules
  • Per-site configuration overrides — different settings, language, and appearance per site context
  • Site-scoped content access control — readers and editors only see the content that belongs to their site
  • Site-aware URL generation — links are automatically scoped to the active site's domain or path prefix
  • Cache context integration — built-in site cache context keeps pages correct and fast across site boundaries
  • Submodules for common patterns: path prefixes, path aliases, Pathauto, language negotiation, ECA integration, and a frontend preview switcher

Requirements

Getting started

Install with Composer:

composer require drupal/sites
drush en sites

Then implement a SitePlugin — an annotated PHP class extending SitePluginBase — to define which content and settings belong to each site. Enable the sites_example submodule for annotated example implementations.

Information about old versions of this module

Supporting organizations: 
Drupal 6/7 development and maintenance

Project information

Releases