Startseite / Weiterführende Themen / Generierung / Advanced URLs

Advanced URLs erzeugen

Inhaltsverzeichnis

FirstSpirit bietet eine API-Schnittstelle, über die eigene „URL-Erzeuger“ (in Form von Modulen) erstellt werden können, mit denen URLs ganz nach Bedarf generiert werden können. Auf diese Weise kann z. B. Search Engine Optimization (SEO) betrieben werden, beispielsweise durch die Verwendung von „sprechenden“ URLs, die von Besuchern der Website leichter verstanden und von Suchmaschinen möglicherweise besser bewertet werden. Zusätzlich können URLs komplett mehrsprachig erzeugt werden. In jedem Fall sollte frühzeitig mit der Planung der Struktur der URLs begonnen werden: nachträgliche Änderungen an URLs von bereits indexierten Seiten können den Rang (zumindest kurzfristig) negativ beeinflussen.

Einstiegspunkte (FirstSpirit Developer-API):

  • UrlFactory URLs werden bei der Generierung eines Projektknotens erzeugt. Regulär werden die URL-Pfade dabei aus den Referenznamen der beteiligten Objekte gebildet, für eine Seitenreferenz also aus dem Referenznamen der Seitenreferenz und den Referenznamen der übergeordneten Menüebenen. Das Interface UrlFactory ermöglicht die Verwendung von Anzeigenamen zur Erzeugung sprachabhängiger URLs. Es ist aber auch möglich, Verzeichnisstrukturen für den Webserver anzulegen, die komplett von der Struktur des Projekts abweichen (siehe Interface PathLookup).
    Siehe auch Konfiguration benutzerspezifischer Advanced URLs.
  • FilenameFactory Regulär werden URL-Pfade basierend auf den Strukturen des generierten Projektknotens im Dateisystem angelegt. Über das Interface „FilenameFactory“ können Pfade im Dateisystem unabhängig von URLs vergeben werden.
  • PathLookup Im FirstSpirit SiteArchitect können nicht nur benutzerdefinierte URLs bzw. Pfade zu Projektknoten, wie Medien oder Seitenreferenzen definiert werden, sondern auch benutzerdefinierte Pfade zu hierarchisch übergeordneten Elementen, also zu Ordnern der Medien- und der Struktur-Verwaltung. Das Interface PathLookup kann verwendet werden, um diese Pfade während der Erzeugung der URL eines untergeordneten Objekts zu berücksichtigen.

Wichtig Eine komplexe URL-Erzeugungs-Strategie macht es unmöglich vorherzusagen, ob durch Benutzeraktionen (z. B. Verschieben von Knoten in der Baumstruktur) Konflikte (identische Dateinamen) entstehen werden. Dies kann erst sehr spät (z. B. bei der Erzeugung der Datei oder erst bei der Veröffentlichung) erkannt werden. Das bedeutet, dass durch ungeschickte Implementierung und / oder ungeschickte Wahl der Anzeigenamen Probleme auftreten, die im Standard-URL-Erzeugungsmodus nicht auftreten können. Diese Probleme werden erkannt und automatisch behoben, indem die Namen durch das Anhängen einer fortlaufenden Nummer eindeutig gemacht werden.
Wichtig Die Umstellung des URL-Creators hat Auswirkungen auf die nachgelagerten Veröffentlichungsprozesse und Live-Systemkonfiguration. Diese müssen ggf. an den modifizierten URL-Creator angepasst werden.
Wichtig Das Auslesen aller definierten SEO- bzw. Short-URLs eines Projektes kann über das Interface UrlAgent (Package: de.espirit.firstspirit.agency) erfolgen. Das Auslesen kann beispielsweise zum Generierungszeitpunkt im GenerateTask erfolgen oder innerhalb von RewriteRules für einen Webserver verwendet werden (z. B. bei einer Modifikation der URLs auf der Live-Seite).

Advanced URL Creator (Referenz-Implementierung)

ServerManager Auftrag Pfaderzeugung

Konfiguration der AdvancedUrls im Generierungsauftrag

Im Basis-Lieferumfang von FirstSpirit ist der URL-Erzeuger „Advanced URL Creator“ enthalten. Hierbei handelt es sich um eine Referenz-Implementierung für eine neue URL-Erzeugungsstrategie: Die Referenz-Implementierung erhebt NICHT den Anspruch, alle SEO-Strategien vollständig abbilden zu können (dies ist auch prinzipbedingt nicht möglich), sondern bildet eine Basis, mit der deutlich flexiblere URLs erzeugt werden können. Für die Anpassung an eigene Bedürfnisse ist Java-Programmierung erforderlich.

Die Verwendung der Referenz-Implementierung „Advanced URL Creator“ kann direkt in den Generierungsaufträgen über die Combobox „Pfaderzeugung“ aktiviert werden (siehe Grafik). Dazu ist keine weitere Implementierung erforderlich.

Während bei der Standard-URL-Erzeugung die URLs auf Basis von Datei- und Referenznamen gebildet werden, werden bei der Advanced URL-Erzeugung die Anzeigenamen der FirstSpirit-Objekte zugrunde gelegt.

Damit werden alle URLs in UTF-8, inklusive Leer- und Sonderzeichen erzeugt. Unter Windows kann dies auch u.a. dadurch zu Problemen führen, da im Dateisystem nicht zwischen Groß- und Kleinschreibung unterschieden wird. Allerdings werden bei der URL-Erzeugung führende und abschließende Leerzeichen entfernt und standardmäßig folgende Zeichen sowie weitere Leerzeichen durch Minuszeichen (-) ersetzt:

 \ / , : ; * ? " < > |  # @ = & + % $

Zu Möglichkeiten der Zeichenersetzung siehe auch unten.

Alle URLs eines Projekts können durchgehend mehrsprachig realisiert werden. Es gibt keine Einteilung in Sprach- und Vorlagensatz-Verzeichnisse. URLs / Pfade, die nicht eindeutig sind, werden während der Generierung automatisch eindeutig und dadurch voneinander unterscheidbar gemacht (durch Anhängen einer Nummerierung).

Dieser URL-Erzeuger eignet sich damit in erster Linie für Projekte, in denen in allen zu generierenden Sprachen auch die entsprechenden Anzeigenamen in Struktur- und Medien-Verwaltung durchgängig mehrsprachig gepflegt sind. Ist in einer Sprache kein Anzeigename gepflegt, wird der Anzeigename der Mastersprache oder, wenn auch in der Mastersprache kein Anzeigename vorhanden ist, der Referenzname verwendet.

Wichtig Da die Klasse AdvancedUrlFactory Bestandteil der Kernfunktionalität von FirstSpirit ist, ist der Quellcode unter dem Namen UrlFactoryExample im Zip-Archiv "Component Development Examples Source Code Package" enthalten (siehe Beispielmodule).

Zeichenersetzungen

Über die Projekt-Komponente „FirstSpirit AdvancedUrlFactory Configuration“ können projektspezifische Regeln für Zeichenersetzungen definiert werden. (Zu Projekt-Komponenten siehe Projekt-Komponenten (→Dokumentation für Administratoren).)

Hierbei kann entweder

  1. eine der serverweit gültigen Konvertierungsregeln ausgewählt werden oder
  2. eine projektspezifische Konvertierungsregel definiert werden.

1. Serverweit gültige Konvertierungsregeln werden im FirstSpirit ServerManager unter Server-Eigenschaften / Konvertierungs-Regeln definiert (siehe dazu Konvertierungs-Regeln (→Dokumentation für Administratoren)).
Die gewünschte Regel kann aus der Klappbox „Konvertierungs-Regel“ ausgewählt werden. Im Feld „Definition“ wird die Definition dargestellt. Diese kann hier nicht bearbeitet werden.

2. Eine projektspezifische Konvertierungsregel kann definiert werden, wenn in der Klappbox „Konvertierungs-Regel“ -CUSTOM- ausgewählt ist.
Jede Regel muss in einer Zeile stehen und besteht aus zwei Werten, die durch ein Gleichheitszeichen getrennt werden:

  • links das Sonderzeichen, das umgeformt werden soll, entweder direkt per Tastatur eingegeben oder als Hexadezimalcode (z. B. 0xe4 für ae).
  • rechts das oder die gültige/n Zeichen, in das das Sonderzeichen bei der Verwendung des Advanced URL Creator umgeformt werden soll, in doppelten Hochkommata.

Hinweis: Gleichheitszeichen (0x3D), Leerzeichen (0xa0) und einige Steuerzeichen müssen zwingend in Hexadezimalcode angegeben werden.

Beispiel:

[convert]
Ä="Ae"
Ö="Oe"
Ü="Ue"
ä="ae"
ö="oe"
ü="ue"
ß="ss"

Menüebenen und Seitenreferenzen

Jede zu berücksichtigende Seitenreferenz wird samt Ordner-Pfad (Menüebenen) generiert. Menüebenen ohne Seitenreferenz werden bei der Generierung nicht berücksichtigt, sofern sie keine weitere/n Menüebene/n mit freigegebenen Seitenreferenzen enthalten. Sowohl für Seitenreferenzen als auch für Menüebenen werden die Anzeigenamen herangezogen, so dass alle URLs komplett mehrsprachig erzeugt werden können.

Aus

../de/startpage/firstspirit.html

und

../en/startpage/firstspirit.html

bei der Standard-URL-Erzeugung wird im Advanced-Modus

../Startseite/index.html

und

../Startpage/index.html

Diese Seiten können auch über

../Startseite

bzw.

../Startpage

aufgerufen werden.

Wurde in einer Sprache für eine Menüebene kein Anzeigename durch den Redakteur vergeben, wird das Verzeichnis der Mastersprache („Fallback Mastersprache“") bzw. ein Verzeichnis mit dem Referenznamen („Fallback Referenzname“) verwendet. Sollten auf diese Weise mehrere index.html-Dateien in einem Verzeichnis vorhanden sein, wird als Unterscheidungsmerkmal eine Nummer angehängt („Fallback Eindeutigmachung“), z. B.

../Startseite/index.html
../Startseite/index.1.html

Dies ist auch der Fall, wenn Ordner in verschiedenen Sprachen denselben Anzeigenamen haben.

Über ein der Generierung vorgelagertes Skript (Auftragsverwaltung in den Projekteigenschaften) kann beispielsweise ermöglicht werden, dass statt der „index.*“-Dateien, Dateien auf Basis des Anzeigenamen der Seitenreferenz erzeugt werden, z. B.:

context.setProperty("#urlCreatorSettings", Collections.singletonMap("usewelcomefilenames", "false")); 

Seitengruppen

Werden Seitengruppen verwendet, erhält die Startseite standardmäßig den Dateinamen index.html. Die Dateinamen der anderen Seiten der Seitengruppe werden aus dem Anzeigenamen der Seite generiert (wobei die Leerzeichen hier durch ein „-“ ersetzt werden). Ist kein Anzeigename gepflegt, wird der Referenzname verwendet. Die Vereindeutigung von Dateinamen in Ordnern wird analog zu den Seitenreferenzen vorgenommen.

Aus

../de/seitengruppe/pressemitteilung_1.html
../de/seitengruppe/pressemitteilung_2.html
../de/seitengruppe/pressemitteilung_3.html

bzw.

../en/seitengruppe/pressemitteilung_1.html
../en/seitengruppe/pressemitteilung_2.html
../en/seitengruppe/pressemitteilung_3.html

im Standard-URL-Modus

würde dann beispielsweise im Advanced-URL-Modus

../Seitengruppe/index.html
../Seitengruppe/Pressemitteilung-2.html
../Seitengruppe/Pressemitteilung-3.html

bzw.

../Page-group/index.html
../Page-group/Press-Release-2.html
../Page-group/Press-Release-3.html

Auch hier kann über das der Generierung vorgelagerte Skript (Auftragsverwaltung in den Projekteigenschaften)

context.setProperty("#urlCreatorSettings", Collections.singletonMap("usewelcomefilenames", "false")); 

ermöglicht werden, dass statt der „index.*“-Dateien Dateien auf Basis des Anzeigenamen der Start-Seitenreferenz erzeugt werden.

Datensätze

Werden über eine Content-Projektion Datensätze auf mehreren Seiten verteilt ausgegeben (Register „Daten“ auf Menüebenen), wird an den Anzeigenamen der Seitenreferenz, auf der die Content-Projektion ausgegeben wird, eine Nummer angehängt. Wird pro Seite ein Datensatz ausgegeben, handelt es sich dabei um die ID des Datensatzes, z. B.

.../Presse/Pressemitteilungen/Pressemitteilungen-Detailseite_128.html

bzw.

.../Press/Press-Releases/Press-Releases-Details_128.html

Auch hier wird der gesamte Ordner-Pfad mit generiert. Analog zur URL-Erzeugung bei Seitenreferenzen werden auch hier für Seitenreferenzen und den Ordner-Pfad die Anzeigenamen herangezogen.

Ist im Feld „Variable für Text der Menü-Übersicht (Sitemap)“ in einer Content-Projektion (Struktur-Verwaltung, Seitenreferenz mit Reiter „Daten“) eine Spalte aus der Datenquelle ausgewählt, wird der Text dieser Spalte zur Namensbildung herangezogen, und zwar sprachabhängig. Auf diese Weise können auch für Mehrfachseiten „sprechende URLs“ erzeugt werden, z. B.

../Presse/Pressemitteilungen/20-Jahre-e-Spirit-vom-Start-up-zum-global-Player.html

bzw.

../Press/Press-Releases/e-Spirit-celebrates-20th-anniversary.html

Ist in einer oder mehreren Sprachen das über „Variable für Text der Menü-Übersicht (Sitemap)“ gewählte Feld nicht gefüllt, wird die URL standardmäßig wieder per Anhängen der Datensatz-ID gebildet. Werden mehrere Datensätze auf einer Seite ausgegeben, wird eine fortlaufende Nummerierung angehängt, z. B.

../Presse/Pressemitteilungen/Pressemitteilungen-Übersicht.html
../Presse/Pressemitteilungen/Pressemitteilungen-Übersicht_1.html
../Presse/Pressemitteilungen/Pressemitteilungen-Übersicht_2.html

bzw.

../en/Press/Press-Releases/Press-Releases-Overview.html
../en/Press/Press-Releases/Press-Releases-Overview_1.html
../en/Press/Press-Releases/Press-Releases-Overview_2.html

Medien

Anders als bei der Standard-URL-Erzeugung wird bei der Advanced URL-Erzeugung kein übergeordnetes Medien-Verzeichnis angelegt. Die zu berücksichtigenden Medien der Medien-Verwaltung werden in Ordnern hierarchisch abgelegt, Ordner bzw. Medien im Wurzelverzeichnis der Medien-Verwaltung werden auf oberster Ebene des Generierungsverzeichnisses abgelegt . Sowohl für Medien als auch für Medien-Ordner werden die Anzeigenamen herangezogen, so dass alle URLs komplett mehrsprachig erzeugt werden können. Dadurch kann es dazu kommen, dass Dateien der Struktur-Verwaltung (HTML-Seiten, PDF-Dokumente usw.) und Medien im selben Verzeichnis abgelegt werden, wenn der Anzeigename der Ordner in der Struktur- und in der Medien-Verwaltung identisch sind.

Aus

1) ../media/products/powerinverter/control-panel.jpg
2) ../media/products/powerinverter/control-panel_Produktteaser.jpg
3) ../media/de/products/downloaddokumente/produktuebersicht.doc
4) ../media/en/products/downloaddokumente/produktuebersicht.doc

bei der Standard-URL-Erzeugung

wird im Advanced-Modus

1) ../Produkte/Wechselrichter/Instrumententafel.jpg 	
2) ../Produkte/Wechselrichter/Instrumententafel_Produktteaser.jpg
3) ../Produkte/Word-Download-Dokumente/Produkt-Übersicht.doc
4) ../Products/Word-downloads/Product-overview.doc

Bei sprachabhängigen Medien (für jede im Projekt vorhandene Sprache wird bei gleicher Referenz ein unterschiedliches Medium verwendet, Beispiele 3) und 4)) wird der Anzeigename der entsprechenden Sprache verwendet bzw. der Referenzname. Bei sprachunabhängigen Medien (es wird dasselbe Medium für alle Sprachen verwendet, Beispiele 1) und 2)) wird der Anzeigename der Mastersprache verwendet. Ist dieser nicht vergeben, wird der Referenzname verwendet.

Wurde in einer Sprache für ein Medium kein Anzeigename durch den Redakteur vergeben, wird der Anzeigename der Mastersprache („Fallback Mastersprache“) bzw. der Referenzname („Fallback Referenzname“) verwendet. Sollten auf diese Weise mehrere Dateien mit demselben Namen in einem Verzeichnis erzeugt werden, wird als Unterscheidungsmerkmal eine Nummer angehängt („Fallback Eindeutigmachung“), z. B.

../logo.png
../logo-1.png

Über die API können auch für Medien-Ordner URLs manuell vergeben werden, z. B. „media“ für den Medien-Wurzelknoten.

© 2005 - 2023 Crownpeak Technology GmbH | Alle Rechte vorbehalten. | FirstSpirit 2023.2 | Datenschutz