Sprache auswählen

Mit Version 3.8 wurde bei Joomla! ein neues Routing-System ("Modern Router") eingeführt. Diese Dokumentation erklärt die korrekte Nutzung dieses modernen Routers mit Fokus auf Menüeinträge, Kategorien und Items (z. B. Bilder in JoomGallery oder Artikel) sowie deren Aliase.

Ăśberblick: Was macht der moderne Router?

Der moderne Router wurde konzipiert, um klarere und konsistentere SEF-URLs zu generieren. Es wurde eine Schnittstelle geschaffen, um ĂĽber verschiedene Komponenten hinweg gleiche URLs zu erzeugen. Dies tut er, indem er:

  • MenĂĽeinträge als Basis fĂĽr URL-Segmente verwendet,
  • Kategorien-Hierarchien zur Segmentbildung nutzt,
  • IDs optional entfernen kann,
  • und nicht auflösbare Parameter als Query-Parameter anhängt.

Das Ziel: Nette URLs wie /gallery/images/mein-bild.html statt komplexer Query-Strings.

Voraussetzungen und Router-Einstellungen

Aktivierung des modernen Routers

In Joomla! unter System → Konfiguration → Site → Suchmaschinenoptimierung (SEO) kann das Routing mit "Suchmaschinen-freundliche URL" aktiviert werden. Optional lässt sich mit "Dateiendung an URL anfügen" die Endung (z.B *.html) aktivieren. Zudem lässt sich in den Komponenten Einstellungen "IDs aus den URLs entfernen" aktivieren.

Wichtige Strukturelemente

  • MenĂĽeinträge definieren die Haupt-URL-Segmente.
  • Kategorien liefern zusätzliche, optionale Segmente, um eine weitere Verschachtelung der Struktur darzustellen.
  • Aliase bestimmen die Darstellung der finalen URL-Segmente.

Schritt-fĂĽr-Schritt: So entsteht eine SEF-URL in Joomla!

Haupt-MenĂĽeintrag (Root-Ansicht)

Der MenĂĽeintrag der obersten Ebene, z. B. Galerie mit Alias gallery, erzeugt das erste URL-Segment: /gallery/.

UntermenĂĽ-Items

Zusammen mit einem MenĂĽeintrag fĂĽr die Bilderliste, z. B. Alias images, wird daraus: /gallery/images/.

Kategorien

Eine Kategorie mit Title "Landschaften" und Alias landschaften könnte ein weiteres Segment ergeben.

Items (z. B. Bilder, Artikel)

Eine Detail-Ansicht des Bildes mit ID 1 und Alias testimage wird z. B. zu:
/gallery/images/1-testimage.html.

Was passiert, wenn kein passender MenĂĽeintrag existiert?

Fehlt ein MenĂĽeintrag, versucht der Router:

  • Fallback-URL-Strukturen zu erzeugen,
  • nicht auflösbare Parameter als Query anzuhängen,
  • oder es kommt ggf. zu 404-Fehlern (striktere Erkennung).

Ergebnis: URLs können länger oder unsauberer aussehen, z. B.:

/component/joomgallery/image/5-vogel?format=raw&type=detail&Itemid=5
Was ist hier nun wirklich passiert?

Der Router hat versucht einen Menüeintrag zu finden, welcher zum Bild mit ID: 5 passt. Da kein entsprechender Menüeintrag gefunden wurde, hat der Router sich entschieden, die Fallback URL für Bild URLs zu verwenden: /component/joomgallery/image. Dahinter konnte er erfolgreich das Segment des spezifischen Bildes bilden: 5-vogel. Alle weiteren Bestandteile der URL konnte der Router nicht auflösen. Also listet er diese hinten als Query-Parameter an.

  • Itemid ist der parameter des verwendeten MenĂĽeintrags. Der Router hat hier ein zufällig vorhandener MenĂĽeintrag verwendet, da er keinen passenden JoomGallery Menueintrag gefunden hat. Dieser zufällige MenĂĽeintrag listet er hier.
  • format das angeforderte Format wird angefĂĽgt, wenn "Add Suffix to URL" nicht aktiviert ist in den Joomla! globalen Konfigurationen.
  • type geibt an, welcher Bild-Typ ausgegeben werden soll.

Leitfaden zur gezielten URL-Gestaltung

Die Menüeinträge sind der Schlüssel zu schönen URLs. Nur mit einer guten und durchdachten Struktur der Menüeinträge kannst du deine gewünschte URL Struktur erzeugen. Einige Komponenten, wie die JoomGallery erzeugen bei der Installation ein Set an Menüeinträgen, welche bereits für die meisten Anwendungen der Komponente gute URLs erzeugen.

Um deine gewünschten URLs zu erzeugen müssen somit die richtigen Menüeinträge in Kombination mit dem richtigen Router erstellt werden.

  • Haupt-MenĂĽeintrag definieren z. B. gallery, erstes Segment
  • Unter-MenĂĽeinträge anlegen z. B. images, categories.
  • Kategorien strukturieren eindeutige Aliase: landschaften, portraits.
  • Bilder mit klaren, eindeutigen Aliasen z. B. testimage.
  • Router-Einstellungen prĂĽfen
  • Ergebnis-URLs testen
  • Parameter minimieren Durch MenĂĽeinträge oder Kategorie-Alias vermeiden.

AusfĂĽhrungen zu Aliasen

Für Kategorien und vorallem Bilder ist es sehr wichtig, dass eindeutige Aliase existieren. Dies ist insbesondere dann wichtig, wenn "IDs aus den URLs entfernen" aktiviert ist. Der Router hat nämlich die Aufgabe, das entsprechende Element (Bild oder Kategorie) heraus zu finden einzig mit den verfügbaren Segmenten. Dazu sucht er in Datenbank nach dem Element, welches den entsprechenden Alias aufweist. Im besten Fall existiert nur genau ein Element mit diesem Alias. Schauen wir uns das an einem Beispiel an:

index.php/gallery/images/5-flugzeug-2.html

Dieses Bild wurde in eine Kategorie hochgeladen, in welcher bereits ein Bild existierte mit dem Alias flugzeug. Deshalb hat die JoomGallery automatisch ein "-2" hinten am Alias angehängt.

Moderner Router - Standard

Der Standard Router erstellt damit das komplette Bild-Segment nach dem Schema ID-ALIAS und es wird zu 5-flugzeug-2. Bei der RĂĽckkonvertierung, weiss der Router aufgrund des vorhergehenden Segments, dass es sich hier um ein Bild-Segment handelt. Er muss also nach einem Bild suchen. In diesem Fall ist es fĂĽr ihn einfach. Es existiert eine Zahl vor dem ersten Bindestrich. Diese Zahl interpretiert er sofort als die Bild-ID.

Falls "IDs aus den URLs entfernen" deaktiviert ist, fehlt die ID und das Bild Segment wird nach dem Schema ALIAS ausgegeben. Der Router sucht nun also in der Bild-Tabelle in der Datenbank nach einem Bild mit dem Alias flugzeug-2. Er nimmt das erste Suchergebnis, das er findet.
Probleme
Wenn "IDs aus den URLs entfernen" deaktiviert ist, können nun folgende Probleme entstehen:

  • Alias nicht eindeutig: Falls mehrere Bilder mit dem gleichen Alias existieren, kann es sein, dass der Router das falsche Bild erwischt bei der Suche. Entsprechend wird dann auch das falsche Bild dargestellt oder verlinkt.
  • Alias mit einer Zahl: Falls der Alias mit einer Zahl gefolgt von einem Bindestrich beginnt, also z.B so 2012-berlin, dann interpretiert der Router 2012 automatisch als die ID des Bildes. Es wird dann das Bild mit ID=2012 dargestellt oder verlinkt statt des gewĂĽnschten Bildes mit Alias=2012-berlin.
Moderner Router - JG3 Variante

Der Router funktioniert in weiten Teilen gleich. Jedoch wird ein Bild-Pfad hier von einigen Kategorie-Segmenten angeführt. Diese helfen dem Router, das richtige Bild zu finden, da es die Suche nach dem Bild auf eine bestimmte Kategorie beschränkt. Die Gefahr, dass das falsche Bild gefunden wird ist hier somit kleiner.

Beispiele



 Komponente;Ansichtstyp;Item-Slug (Beitrag/Bild);Kategorie-Struktur;Ausgabe-Format;MenĂĽ-Struktur

Die Query-Parameter Komponente und Ansichtstyp werden vom Router nur intern verwendet und führen nie zu einem Segment in der URL, wird also vom Router "geschluckt". Alle anderen verfügbaren Query-Parameter werden gemäss oben beschriebenem Prinzip verarbeitet. Alle Query-Parameter, welche der Router nicht in Segmente umwandeln kann, werden als Query-Parameter hinten an der URL wieder angehängt.



Beispiel 1: JoomGallery (Moderner Router - Standard)

index.php?option=com_joomgallery&view=image&id=12:testimage&catid=2&format=html&Itemid=42
... wird zu ...

index.php/gallery/images/12-testimage.html?catid=2
  • gallery → Alias des Haupt-MenĂĽeintrags des Types "Galerieansicht"
  • images → Alias des MenĂĽeintrags des Types "Bilderliste" als Kind von gallery
  • 12-testimage → Item-ID + Alias
  • ?catid=1 → Parameter, der nicht ĂĽber MenĂĽ/Kategorie auflösbar war wird hinten als Query-Parameter angehängt.

Ich habe in diesem Beispiel extra die Kategorie in die Query-Parameter übernommen, weil dies bei einer migrierten JoomGallery Inhalten so sein wird, da der JG3 Router anders getickt hat und die Kategorie Info gebraucht hat. Inhalte, die über die JG4 erstellt wurde, haben diesen Query-Parameter natürlich nicht und die URL sieht entsprechend auch schön aus, ohne "catid=2" am Ende.



Beispiel 2: JoomGallery (Moderner Router - JG3 Variante)

index.php?option=com_joomgallery&view=image&id=12:testimage&catid=2&format=html&Itemid=42
... wird zu ...

index.php/gallery/nature/12-testimage.html
  • gallery → Alias des Haupt-MenĂĽeintrags des Types "Galerieansicht"
  • nature → Alias der Kategorie mit der ID 2
  • 12-testimage → Item-ID + Alias


Beispiel 3: Beiträge (Moderner Router)

index.php?option=com_content&view=article&id=23:minas-tirith&catid=66&Itemid=42
... wird zu ...

index.php/lotr-wiki/cities-in-middleearth/minas-tirith
  • lotr-wiki → Alias des Haupt-MenĂĽeintrags des Types "Kategorieblog"
  • cities-in-middleearth → Alias der Kategorie mit der ID 66
  • minas-tirith → Item Alias (hier wurde die Einstellung "ID Entfernen" aktiviert)

Quelle: https://manual.joomla.org

Quellen

Meist gelesene Artikel

Direkte Spende

Spende an JoomGallery friends

Summe eintragen:

Warum spenden hilft

Neben sehr viel Freizeit kostet die Entwicklung unserer Software und der Unterhalt dieser Supportseite natĂĽrlich auch Geld.
Auch das JG-Forum muss gehostet werden.
Unterstützen Sie die Weiterentwicklung unseres Projekts JoomGallery mit einer Spende, damit wir unsere Software zum großen Teil auch weiterhin kostenlos und werbefrei zur Verfügung stellen können.

Wir sagen DANKE fĂĽr die UnterstĂĽtzung!

Sorry, this website uses features that your browser doesn't support. Upgrade to a newer version of Firefox, Chrome, Safari, or Edge and you'll be all set.