Download the PHP package yakamara/redaxo_yrewrite without Composer
On this page you can find all versions of the php package yakamara/redaxo_yrewrite. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package redaxo_yrewrite
YRewrite
Übersicht
Das AddOn YRewrite für REDAXO erweitert das CMS um "sprechende" URLs und unterstützt den Betrieb mehrerer Domains.
REDAXO ohne Rewriter-AddOn erstellt Urls nach dem Schema index.php?article_id=13&clang=1
zur Vefügung. YRewrite bietet lesbare URLs wie z.B. /de/news/archiv/
in verschiedenen Schemata.
Mehrere Domains können dann sinnvoll sein, wenn
- mehrere Websites eines Kunden in einer Installation verwaltet werden,
- verschiedene Sprachen (
clang
) einer Website unter unterschiedlichen Domains oder Subdomains erreichbar sind, - oder beides.
Tipp: Wir empfehlen im ersten Fall, für jede einzelne Domain in der Struktur auf der obersten Ebene eine Kategorie anzulegen.
Features
- Mehrere Domains in einer Webseite verwaltbar
- Sprachabhängigkeiten von Domains zuweisbar
- Domain- und sprachabhängige ROBOTS.txt-Anweisungen und XML-Sitemaps
- Individuelle URL pro Artikel möglich
- Seitentitel-Schema definierbar / pro Domain/Sprache
- Alias Domains die auf die Hauptdomain verweisen
- Allgemeine Weiterleitungen. URLs zu internen Artikeln, Dateien, externen Artikeln, sogar Protokoll-Tausch in bspw.
tel:
,mailto:
u.a. - Canonical Urls
Installation
Voraussetzung für die aktuelle Version von YRewrite: REDAXO >= 5.5
- Über das REDAXO-Backend installieren und aktivieren
- Setup ausführen
Erste Schritte
Setup
Unter dem Reiter Setup
sind die sitemap.xml
und robots.txt
je eingerichteter Domain einsehbar. Außerdem lässt sich ein Setup durchführen, bei der die Apache-Konfiguration für YRewrite über eine .htaccess
-Datei erstellt wird.
Apache-Konfiguration für YRewrite
Das Setup ausführen, um eine .htaccess
-Datei im Hauptverzeichnis zu erstellen, die für die Verwendung von YRewrite benötigt wird. Anschließend werden alle Frontend-URLs in suchmaschinenfreundliche URLs umgeschrieben ("Rewriteing").
Hinweis Sollten nach Abeschluss des Setups die Frontend-URLs nicht funktionieren, bitte prüfen, ob es sich um einen Apache- oder NGINX-Server handelt (siehe unten). Außerdem prüfen, ob das Webhosting-Paket eigene
.htaccess
-Regeln erlaubt.Hinweis: Das Addon leitet alle Anfragen von
/media/
über das Media-Manager-AddOn. Stelle daher sicher, dass es weder eine Struktur-Kategorie "Media" gibt, noch, dass sich keine deiner Dateien fürs Frontend, bspw. CSS- oder JS-Dateien, darin befinden. Gute Orte hierfür sind die Ordner/assets/
oder die Verwendung des Theme-AddOns. Sollte es notwendig sein, eine Kategorie namens "Media" zu verwenden, dann müssen die entsprechenden Zeilen in der .htaccess-Datei auskommentiert oder umbenannt werden und diese fortan genutzt werden, wenn Medien aus dem Medien Manager verwendet werden. Dies hat weitere Auswirkungen, z.B. auf geschützte Dateien mit YCom - das Auskommentieren und Umbenennen sollte daher nur von erfahrenen REDAXO-Entwicklern vorgenommen werden.
NGINX-Konfiguration für YRewrite
Eine vollständige nginx config für YRewrite.
Hinweis für PLESK-Websites: Die Direktiven können unter Einstellungen für Apache & nginx der gewünschten Domain im Abschnitt Zusätzliche nginx-Anweisungen hinterlegt werden.
Domain hinzufügen
- In "YRewrite" unter "Domains" Auf das +-Zeichen klicken.
- Domain eintragen, bspw.
https://www.meine-domain.de/
. - Mountpoint auswählen (optional). Das ist der Startartikel einer Kategorie, in der sich YRewrite einklinken soll. Alle Artikel unterhalb des Mount-Artikels sind dann über die Domain aufrufbar. Wird kein Artikel ausgewählt, sind alle Ebenen dieser Domain zugeordnet (Standard).
- Startseiten-Artikel auswählen. Das kann der Mount-Artikel sein oder eine separate Artikelseite. Diese wird als Startseite der Domain aufgerufen.
- Fehlerseiten-Artikel auswählen. Das ist der Artikel, der mit einem 404-Fehlercode ausgegeben wird, z.B., wenn eine Seite nicht gefunden werden kann oder ein Tippfehler in der Adresse vorliegt.
- Spracheinstellungen: Hier können Sprachen ausgewählt werden, die mit der Domain verknüpft werden. So lassen sich bspw. unterschiedliche Domains pro Sprache umsetzen.
- Titelschema eintragen, bspw.
%T - Meine Domain
. Dieses Titelschema kann dann im Website-Template ausgegeben werden. - robots.txt-Einstellungen hinzufügen. Siehe Tipp unten.
- Domain hinzufügen.
Diese Vorgehensweise für alle gewünschten Domains wiederholen.
Tipp: Um die Installation während der Entwicklung zuverlässig gegen ein Crawling von Bots und Suchmaschinen zu schützen, genügt die
robots.txt
nicht. Dazu gibt es dasmaintanance
-Addon von https://friendsofREDAXO.github.ioTipp: Die Domain auch in der Google Search Console hinterlegen und die
sitemap.xml
dort hinzufügen, um das Crawling zu beschleunigen. Die Domain sollte in allen vier Variationen hinterlegt werden, also mit/ohnehttps
und mit/ohnewww.
. Diesitemap.xml
jedoch nur in der Hauptdomain, am besten mithttps://
undwww.
Hinweis: Domains mit Umlauten bitte derzeit decodiert eintragen. Umwandlung bspw. mit https://www.punycoder.com
Hinweis: Informationen zu Best Practice zu Domains und mehrsprachigen Websites auch unter Multiregionale und mehrsprachige Websites verwalten aus der Google Search Central Dokumentation.
Alias-Domain hinzufügen
Alias-Domains werden nur dann benötigt, wenn mehrere Domains auf den selben Ordner im Server zeigen, aber keine separaten Websites aufrufen. z.B. www.meinedomain.de
und www.meine-domain.de
.
Alias-Domains müssen nicht eingetragen werden, wenn die Domain nicht auf das Serververzeichnis zeigt. Einige Hoster bieten bspw. von sich aus die Möglichkeit, per Redirect von www.meinedomain.de
auf www.meine-domain.de
weiterzuleiten. Dann wird die Einstellung nicht benötigt.
- In "YRewrite" unter "Domains" Auf das +-Zeichen klicken
- Alias-Domain eintragen, bspw.
https://www.meine-domain.de/
- Ziel-Domain aus YRewrite auswählen
- Alias-Domain hinzufügen
Weiterleitungen
Unter Weiterleitungen können URLs definiert werden, die dann auf einen bestimmten Artikel oder eine andere Adresse umgeleitet werden.
Hinweis: Mit dieser Einstellung können nicht bereits vorhandene Artikel / URLs umgeleitet werden, sondern nur URLs, die in der REDAXO-Installation nicht vorhanden sind. Das ist bspw. bei einem Relaunch der Fall, wenn alte URLs auf eine neue Zielseite umgeleitet werden sollen.
Tipp: Damit lässt sich auch ein Artikel oder eine Kategorie zu einem gänzlich anderen URI-Protokoll ändern, bspw.
tel:
,mailto:
u.a. Diese werden auch an anderer Stelle, bspw. von derrex_navigation::factory()
, berücksichtigt.
Weitere Schritte
Die sitemap.xml
kann pro Domain bspw. in der Google Search Console eingetragen werden, um die korrekte Indexierung der Domain(s) und deren Seiten zu überprüfen.
Klassen-Referenz
YRewrite-Objekt
Siehe auch: https://github.com/yakamara/redaxo_yrewrite/blob/main/lib/yrewrite/yrewrite.php
Methoden
YRewrite-Domain-Objekt
Siehe auch: https://github.com/yakamara/redaxo_yrewrite/blob/main/lib/yrewrite/domain.php
Methoden
YRewrite-SEO-Objekt
Siehe auch: https://github.com/yakamara/redaxo_yrewrite/blob/main/lib/yrewrite/seo.php
Methoden
Beispiele
ID der aktuellen Domain in YRewrite
Beispiel-Rückgabewert: 1
Mount-ID der Domain
Beispiel-Rückgabewert: 5
Startartikel-ID der Domain
Beispiel-Rückgabewert: 42
Fehler-Artikel-ID der Domain
Beispiel-Rückgabewert: 43
Name der aktuellen Domain
Beispiel-Rückgabewert: meine-domain.de
vollständige URL eines Artikels
Beispiel-Rückgabewert: https://www.meine-domain.de/meine-kategorie/mein-artikel.html
Zu welcher Domain gehört der aktuelle Artikel?
Beispiel-Rückgabewert: meine-domain.de
Meta-Tags auslesen (description
, title
, image
usw.)
Diesen Codeabschnitt in den <head>
-Bereich des Templates kopieren:
Dies erzeugt folgende Ausgabe:
Meta-Tags erweitern / ändern
Navigation Factory in Abhängigkeit der gewählten Domain
Weitere Informaionen zur Navigation Factory des REDAXO-Cores in der API-Dokumentation unter https://REDAXO.org/api/master/ und bei den Tricks von FriendsOfREDAXO: https://github.com/friendsofREDAXO/tricks/
Übersicht aller Domains ausgeben
URL-Schemes für YRewrite
Übersicht
YRewrite kann durch Schemes erweitert werden.
Installation
- Als Datei im
lib
-Ordner des project-AddOns ablegen. - Dateiname:
eigene_rewrite_class.php
- In die
boot.php
des project-AddOns einsetzen:
Nachfolgend listen wir hier ein paar Beispiele.
Endung auf .html setzen
Trailing Slash entfernen
URL-Replacer
Ersetzt URLs leerer Elternkategorien mit den URLs der nächsten mit inhalt versehenen (online-)Kindkategorie.
Basiert auf: https://gist.github.com/gharlan/a70704b1c309cb1281c1
Weiterleitung egal ob Inhalt in Startartikel der Elternkategorie
Weiterleitung nur wenn kein Inhalt im Startartikel der Elternkategorie
URL manipulieren, hier mit dem AddOn Sprog
So kann als Kategoriename ein Platzhalter wie {{contact}} verwendet werden und durch die in Sprog hinterlegten Sprachvarianten ersetzt werden.
One Level, Kategoriename-Ersetzung durch Sprog.
Multilevel, Kategoriename-Ersetzung durch Sprog.
Ersetzungsmuster mit einem eigenen Schema verändern
Die Ersetzungsmuster können mit eigenen Schema verändert werden. In diesem Beispiel wird &
durch und
getauscht.
-
Datei in den lib-Ordner des Project-AddOns anlegen
- In der
boot.php
-Datei desproject
-AddOns diesen Code einfügen:
rex_yrewrite::setScheme(new rex_project_rewrite_scheme());
Addons, die eigene Schemes mitbringen:
- YRewrite scheme: https://github.com/FriendsOfREDAXO/yrewrite_scheme
Weitere Unterstützung
- Bug melden via GitHub: https://github.com/yakamara/redaxo_yrewrite/issues/
- Hilfe via REDAXO Slack-Channel: https://friendsofREDAXO.slack.com/
- Tricks via FriendsOfREDAXO: https://friendsofredaxo.github.io/tricks/ bei Addons > YRewrite