The dotCMS supports the addition multiple sites that can all share the same templates, containers, files, and content as needed. You can create as many sites as your server/network hardware specifications will allow. The site addresses will need to be configured/maintained in the DNS records of your organization by a system administrator.
Sites are controlled by the Host system Content Type. Users with administrative permissions can see the Site Selector (see below), at the top right corner of the Content Search or Site Browser tabs.
From the select box, a back-end user can switch between site(s) that they are permissioned to view.
Site Manager
To manage sites, use the tool located under Settings -> Sites.
From here, you can left-click on any site to edit its properties, or right-click to take contextual actions.
The site-manager pane displays existing sites under two columns:
Column | Description |
---|---|
Site Key | Displays the site name, which must be a single word, typiclly be in the style of a domain or subdomain. |
Aliases | Displays additional domain names registered and configured to point at the dotCMS server; if properly configured, dotCMS will resolve requests to the correct site. |
Clicking the Add Site button allows administrators to add a new website to the system. This new site will have its own folder directory tree and can be assigned specific user permissions and dotCMS objects that pertain specifically to that site — templates, containers, etc.
After clicking New Site, you will be given a choice between “Copy an existing Site” or “Start with a blank Site.”
Copying a Site
Selecting the copy option and clicking Next opens the Select a Site to copy dialog. A site can be selected from the select box provided; checkboxes allow for all or only selected dotCMS object types to copied into the new site.
After choosing the site to copy, clicking on Next opens a prefilled contentlet of the Hosts system Content Type.
Adding a New Site
Whether adding a blank site or having already copied a pre-existing site, editing the contentlet presents the same set of fields; a site, like nearly everything in dotCMS, is a form of content.
Sites typically have a site name that matches its primary domain or website address. In consequence of this, a site name is limited to a single word, though hyphens and periods can be used throughout. Additionally, the site can have alias domains that also map to the same dotCMS server (or IP address). A thumbnail for the site can also be selected to help differentiate the site from other managed sites (optional).
Clicking the Save button on the site saves a draft copy of the site that is not externally accessible to the public, regardless of the permissions set on the site. Only by clicking on Save/Activate can a new, or copied site, be made public, where permissions allow.
Additional Site Settings
After saving a new site, users are brought to the Sites tool. From here, right-clicking on a site name exposes the following options:
Option | Description |
---|---|
Edit | Edit the site's contentlet, allowing adjustment of name, permissions, aliases, and so on. |
Edit Site Variables | Site variables can be used to add unique variable values that refer to site-specific attributes. (See Adding a Site Variable for more information.) |
Stop Site | Makes site inaccessible to the public (similar to unpublishing other content). |
Make Default | Makes the selected site the default site on the server. If the server does not match the site key or the site alias for any site on the instance in the URL, the user will automatically be redirected to the default site. |
Add To Bundle | Adds the site to a bundle for push publishing to another dotCMS server. |
Custom Maintenance and Error pages for each Site
Custom error and maintenance pages can be set up for each site by configuring a Vanity URL for each error page. For more information please see the Custom Error Pages documentation.
Permissions on Sites
Learn how to permission user roles on sites in the Site Permissions documentation.
Note on Host File
Sites in dotCMS work very much like virtual sites in Apache, since you can have a single IP address but serve multiple websites, depending on which site name the client requests. During testing, you can use your host file (/etc/hosts
on a Unix-like OS, or C:\WINDOWS\system32\drivers\etc\hosts
in Windows) to be able to access your virtual sites.
While you can have dotCMS listening on multiple IPs, there is no way to have a default site for each IP. So you need to have either DNS records, or during development, set up your Hosts file on your local machine.