Magnolia 5.6 reached end of life on June 25, 2020. This branch is no longer supported, see End-of-life policy.
This page provides two examples of how to create minisites:
We have content for a minisite that resides deep in the site hierarchy at /comics/belgian-comics/morris/lucky-luke/jolly-jumper
. This page node and its subpages should be served as a minisite.
Assume that there is already a site named site named comics-site
, mapped to the domain www.best-comics-net, mapped to the content /comics
. This means requesting the domain with no further paths returns the rendered page of the node /comics
. (See Multisite example - Two sites with different domains.)
Now we look at two solutions for the jolly-jumper
minisite:
/comics/belgian-comics/morris/lucky-luke/jolly-jumper
from the URL www.best-comics.net/jollyjumper/comics/belgian-comics/morris/lucky-luke/jolly-jumper
from jollyjumper.best-comics.netThe tree below shows the page nodes.
Page | Title |
---|---|
comics | Best comics |
us-comics | US comics |
belgian-comics | Belgian comics |
morris | Morris |
lucky-luke | Lucky Luke |
jolly-jumper | Jolly Jumper |
in-love | Jolly Jumper in love |
family-tree | Jolly Jumper's family tree |
In the following examples we look at the page node /comics/belgian-comics/morris/lucky-luke/jolly-jumper
and its subpages.
handlePrefix
within an existing site definitionKeep in mind that this example assumes that the site definition comics-site
already exists. Have a look at the site definition setup in Multisite example - Two sites with different domains.
This is the existing comics-site
site definition with an additional node under mappings:
Node name | Value |
---|---|
comics-site | |
theme | |
name | comics-theme |
prototype | |
mappings | |
website | |
URIPrefix | |
handlePrefix | /comics |
repository | website |
jolly-jumper | |
URIPrefix | /jollyjumper |
handlePrefix | /comics/belgian-comics/morris/lucky-luke/jolly-jumper |
repository | website |
domains | |
best-comics | |
name | www.best-comics.net |
To get a short URL, we add another node under <site>/mappings
. In this example, we add the node /comics-site/mappings/jolly-jumper
.
jolly-jumper | The mapping node name is arbitrary. |
@URIPrefix=/jollyjumper | Enables you to access the content at <domain>/jollyjumper |
@handlePrefix=/comics/belgian-comics/morris/lucky-luke/jolly-jumper | Maps the content node. |
@repository=website | Indicates the JCR workspace of the mapped content. |
Now test it: www.best-comics.net/jollyjumper. It works!
In this solution you enable access to the jolly-jumper
minisite using the subdomain jollyjumper.best-comics.net
.
To do this, you configure a new site definition:
Node name | Value |
---|---|
jolly-jumper-site | |
theme | |
name | jolly-jumper-theme |
mappings | |
website | |
URIPrefix | |
handlePrefix | /comics/belgian-comics/morris/lucky-luke/jolly-jumper |
repository | website |
domains | |
jolly-jumper | |
name | jollyjumper.best-comics.net |
Note that using a distinct site for the minisite means that you can also apply another theme to it. In this example, the jolly-jumper-site uses the jolly-jumper-theme. The jolly-jumper-theme has a CSS that applies a different font (compared to the the comics-theme on the comics-site).
If the new jolly-jumper-site
should reuse items defined on the comics-site
- for instance i18n
and templates
- you can define the jolly-jumper-site in a way that it extends the comic-site:
Node name | Value |
---|---|
jolly-jumper-site | |
extends | ../comics-site |
domains | |
jolly-jumper | |
name | jollyjumper.best-comics.net |
extends | override |
mappings | |
extends | override |
website | |
URIPrefix | |
handlePrefix | /comics/belgian-comics/morris/lucky-luke/jolly-jumper |
repository | website |
theme | |
name | jolly-jumper-theme |
To enable accessing the Magnolia instance with the new subdomain - you must configure your environment accordingly, see mapping multiple domains to the application server.
Now try to access jollyjumper.best-comics.net. It works!