Einfaches URL-Rewrite
url_simple_rewrite, Version 2.2
Autor: Wolfgang Busch
Dieses AddOn ist eine Erweiterung des Standard-Rewriters
und nutzt den Extension Point URL_REWRITE .
Es dient im Wesentlichen nur als exemplarische Einführung in die
Funktionsweise des Rewriters.
Der Artikel-URL wird hier in einer besonders einfachen Form
aus Artikel-Id, Sprach-Code und Artikelname gebildet:
ID-CODE-NAME.html . Seiten können aber auch
über den Redaxo-Standard-URL aufgerufen werden.
Es sind keine besonderen RewriteRules erforderlich.
Setzen eines Wunsch-URLs
Die URL-Standardform in Redaxo
index.php?article_id=ID&clang=CID
enthält lediglich die Artikel-Id und die Sprach-Id. In der Regel
soll stattdessen jeder Artikel einen "Wunsch-URL"
erhalten, der Hinweise gibt auf Artikelinhalt, Themenkategorie
u.s.w.
Zur Realisierung wird eine Funktion definiert, die den gewünschten
URL am Extension Point URL_REWRITE zurück gibt.
Im Backend wird diese Funktion nur im Content-Kontext eines
Artikels (Editieren oder andere Funktionen) aufgerufen,
im Frontend nur innerhalb der Funktion
rex_getUrl($article_id,$clang_id) . Letztere liefert
dem Redakteur (z. B. in Templates oder Modulen) den URL eines
Artikels und die Anzeige im Browser-Adressfeld.
Rewrite-Mechanismus
Ein URL in der oben beschriebenen Form wird
(inkl. Parameter) durch eine Umleitungsregel
RewriteRule ^(.*)$ index.php?%{QUERY_STRING} [L]
in der Datei .htaccess an das Redaxo CMS übergeben.
Links auf Dateien oder Verzeichnisse erfolgen ohne Umleitung.
In der Datei boot.php des AddOns wird der aktuelle URL
inkl. Parametern mittels $_SERVER['REQUEST_URI']
ausgelesen und daraus die zugehörige Artikel-Id und seine
Sprach-Id abgeleitet.
Ausblick auf reale Wunsch-URLs
Im Allgemeinen sind Artikel-Id und Sprach-Id
nicht so einfach wie hier zu ermitteln. Aber der beschriebene
Rahmen kann generell beibehalten werden. Zu beachten ist:
- Zu einem Link auf eine Seite im Frontend muss der
zugehörige Artikel samt Sprachversion eindeutig zu
ermitteln sein.
- Um den Aufwand für die Ermittlung des Artikels und
damit die Belastung des Servers möglichst gering zu
halten, kann der URL z. B. als zusätzlicher
Artikelparameter (Meta Info) mitgeführt werden.
Der Aufwand würde dadurch beim Zugriff auf den Artikel
im Backend automatisch mit erledigt werden.
- Für die Konstruktion des Wunsch-URL bietet sich ein
Rückgriff auf den path-Parameter des Artikels
an.
- Die Kennzeichnung der Sprachversion im Frontend kann
im URL mitgeführt werden, alternativ aber auch z.B.
im Sinne eines "Sprach-Kontextes" in einer
Session-Variablen.
AddOn-Download
|