Startseite
Startseite

Startseite / Weiterführende Themen / Generierung / Advanced URLs

Advanced URLs erzeugen

Mit FirstSpirit Version 5.0 wurde eine API-Schnittstelle geschaffen, über die eigene "URL-Erzeuger" (z. B. in Form von Modulen oder Skripten) 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.
  • 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.

Advanced URL Creator (Referenz-Implementierung)

Konfiguration der AdvancedUrls im Generierungsauftrag

Im Basis-Lieferumfang von FirstSpirit 5.0 ist ein neuer URL-Erzeuger enthalten, der "Advanced URL Creator". 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, als es in FirstSpirit Version 4 möglich war. 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 folgende Zeichen sowie weitere Leerzeichen durch Minuszeichen (-) ersetzt:

 \ / : * ? " < > |  #

Alle URLs eines Projekts können durchgehend mehrsprachig realisiert werden. Es gibt keine Einteilung in Sprach- und Vorlagensatz-Verzeichnisse mehr. 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 5.0 ist, ist der Quellcode unter dem Namen UrlFactoryExample im Zip-Archiv zum Modul-Entwicklerhandbuch (MDEV_modexamples.zip - siehe Online-Dokumentation FirstSpirit, Seite „Dokumentation / Für Entwickler“) enthalten.
Wichtig Für URLs mit Umlauten sollte im Modus AdvancedURLs bei Einsatz eines Tomcat Webservers eine Version ≥ 6.0.29 des Webservers verwendet werden, um eine korrekte Behandlung zu gewährleisten.

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/mithras_home.html

und

../en/startpage/mithras_home.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/Neuer-Geschäftsführer-bei-Mithras-Energy.html

bzw.

../Press/Press-Releases/New-Director-of-Mithras-Energy.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 - 2014 e-Spirit AG | Alle Rechte vorbehalten. | Letzte Änderung: 2013-09-11