Siteaccesses und Multisite
Diese Seite richtet sich an Entwickler, die mehr als eine Website, Sprache oder Oberfläche in einer Installation bauen. Ein Siteaccess ist ein Zugang zur Installation: ein Name, ein Ordner mit Einstellungen und eine Regel, auf welche Anfragen er antwortet. Alle Siteaccesses teilen eine Datenbank und einen Inhaltsbaum; Inhalte lassen sich also zwischen Websites teilen, während jede Website ihr eigenes Design, ihre Sprachen und ihren Startpunkt behält.
Inhalt
- Was ein Siteaccess festlegt
- Wie eine Anfrage ihren Siteaccess wählt
- Die Siteaccesses einer neuen Installation
- Mehrere Websites in einem Baum
- Links zwischen Websites
- Website-Einstellungen in einer Erweiterung halten
- Ablesen, was ein Siteaccess sieht
- Eine Installation oder mehrere
Was ein Siteaccess festlegt
| Legt fest | Einstellungen |
|---|---|
| Das Design | site.ini [DesignSettings] SiteDesign, AdditionalSiteDesignList[] |
| Die Inhaltssprachen | [RegionalSettings] SiteLanguageList[], Locale (Übersetzungen und Sprachen) |
| Wo die Website im Baum beginnt | content.ini [NodeSettings] RootNode, site.ini [SiteSettings] IndexPage, DefaultPage, [SiteAccessSettings] PathPrefix |
| Ob Besucher sich anmelden müssen | [SiteAccessSettings] RequireUserLogin |
| Erweiterungen, die nur für dieses Gesicht aktiv sind | [ExtensionSettings] ActiveAccessExtensions[] |
| Template-Regeln | seine eigene override.ini.append.php |
Ein kommentierter öffentlicher Siteaccess steht unter Siteaccess-Einstellungen.
Wie eine Anfrage ihren Siteaccess wählt
site.ini [SiteAccessSettings] listet jeden Siteaccess in AvailableSiteAccessList[] auf und versucht die
Zuordnungen aus MatchOrder der Reihe nach; die mitgelieferte Reihenfolge ist uri;host;port.
| Zuordnung | Beispiel | Typische Verwendung |
|---|---|---|
URI (URIMatchType=element) | example.com/admin/..., example.com/ger/... | ein Hostname, Sprachen als Pfadelemente |
Host (HostMatchMapItems[]=www.example.com;site) | admin.example.com, www.example.de | Produktion, ein Zertifikat je Host |
| Port | :8081 | lokale Arbeit |
RelatedSiteAccessList[] nennt die Siteaccesses, die Inhalte und Links teilen. Jede Zuordnungsregel und wie Sie sie
testen: Siteaccess-Zuordnung nach Host und Sprache und
Multisite in einer Installation.
Die Siteaccesses einer neuen Installation
Eine Installation hat mindestens einen öffentlichen Siteaccess und die Administration; exp:install legt außerdem
einen Siteaccess editor mit einer einfacheren Oberfläche für Redakteure an
(Einrichtungsassistent und Siteaccess editor). Das
Seitenpaket sevenx_multisite legt mehr an: zwei Demo-Websites (Fit & Healthy und Bold Agency), einen Siteaccess je
weiterer Sprache, admin, editor und mit exp_adminui auch adminui
(Siteaccesses und Sprachen von sevenx_multisite).
Nachzulesen, wie dieses Paket seine Websites verdrahtet, ist der schnellste Weg, eine Multisite-Einrichtung zu lernen.
Mehrere Websites in einem Baum
Jede Website erhält ihren eigenen Teilbaum unter Knoten 2 und ihren eigenen Siteaccess (oder einen je Sprache). Im Siteaccess:
- zeigen
content.ini [NodeSettings] RootNodeundsite.ini [SiteSettings] IndexPageauf den obersten Knoten der Website, sodass Startseite und Menüs dort beginnen; - blendet
[SiteAccessSettings] PathPrefixden eigenen Pfad des Teilbaums in den URLs aus, sodass/bold-agency/servicesauf der Bold-Website als/servicesausgeliefert wird (PathPrefixExclude[]listet Pfade, die die volle Adresse behalten); - lässt eine Sektion je Website Rollen und Template-Regeln die Websites unterscheiden (Sektionen, Rollen und Richtlinien).
Gemeinsam genutzte Inhalte (eine Medienbibliothek, Personen, ein News-Pool) liegen außerhalb der Teilbäume der Websites und werden von jeder Website verknüpft, eingebettet oder abgerufen.
Links zwischen Websites
Verlinkt eine Website auf einen Knoten einer anderen Website, würde das Standard-ezurl den aktuellen Siteaccess vor
den Pfad der anderen Website setzen. Die Erweiterung ezurlmultisite, die die composer.json im Hauptverzeichnis
verlangt, lässt ezurl die Adresse auf dem Siteaccess erzeugen, der den Inhalt ausliefert; sie wird in
ezurlmultisite.ini [MultisiteSettings] konfiguriert (SiteAccessList[], RootNodeList[<siteaccess>])
(Links zwischen Websites).
Website-Einstellungen in einer Erweiterung halten
Die Siteaccess-Einstellungen einer Website gehören unter Versionsverwaltung, in Ihre Website-Erweiterung:
extension/<ext>/settings/siteaccess/<siteaccess>/ für einen Siteaccess und extension/<ext>/settings/override/ für
Einstellungen, die für jeden Siteaccess dieser Erweiterung gelten
(INI-Overrides je Website-Erweiterung). Die Theme-Erweiterung
sevenx_themes_media liefert die Bold-Siteaccesses auf diese Weise mit. Wie sich die Geltungsbereiche gegeneinander
durchsetzen: Einstellungen und INI für CMS-Entwickler.
Ablesen, was ein Siteaccess sieht
./console exp:ini scopes siteaccess
./console exp:ini get site.ini/DesignSettings/SiteDesign -s <siteaccess>
./console exp:ini where content.ini/NodeSettings/RootNode -s <siteaccess>
./console exp:ezrequestrules --helpIn einem Template ist der aktuelle Siteaccess $access_type.name; in PHP eZSiteAccess::current().
Eine Installation oder mehrere
Eine Installation passt zu Websites, die Inhalte, Redakteure oder ein Designsystem teilen und gemeinsam aktualisiert werden. Getrennte Installationen passen zu Websites, die getrennte Datenbanken, getrennte Aktualisierungspläne oder strikte Trennung zwischen Kunden brauchen (Eine Installation oder mehrere?). Logs und Caches lassen sich auch in einer Installation je Website führen (Log- und Cache-Pfade je Website).
Verwandte Seiten
- URL-Aliase und Routing
- Designs und Siteaccesses
- Tutorial: zwei Websites, zwei Designs
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
Werden Sie Exponential-Partner
Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.