URL-Rewriting
Das Adventure PHP Framework bietet die Möglichkeit, Webseiten und Applikationen mit und ohne
URL-Rewriting zu betreiben. Unter URL-Rewriting wird im allgemeinen verstanden, dass URL-Parameter
und -Werte nicht wie üblich per "&" und "=", sondern via "/" separiert werden. Das erweckt den
Eindruck, dass die Inhalte in Ordnern abgelegt sind. Ein weiterer schöner Nebeneffekt ist, dass
Suchmaschinen sog. Slash-URLs für gewöhnlich besser indizieren. Diese Maßnahme ersetzt
jedoch keine komplette Suchmaschinenoptimierung.
Beim Einsatz des URL-Rewrite-Modus muss beachtet werden, dass die Bootstrap-Datei (z.B.
index.php) im
DOCUMENT_ROOT des Webservers oder eines VHOSTs liegt, da
sonst die Zuordnung der Parameter zu ihren Werten nicht korrekt ausgeführt werden kann.
Zur Verwendung des URL-Rewrite-Modus muss eine
.htaccess-Datei im Verzeichnis der
Bootstrap-Datei angelegt werden. Die folgende Codebox zeigt eine Beispiel-Konfiguration die für
die meißten Anwendungsfälle verwendet werden kann:
APF-Template
# Aktivierung von mod_rewrite
RewriteEngine on
# Ausschluss definierter Verzeichnisse von der RewriteRule
RewriteCond %{REQUEST_URI} !^(\/frontend) [NC]
# Definition der RewriteRule. Alle Anfragen ausser den ausgenommenen
# Dateien werden auf die index.php weitergeleitet
RewriteRule !(index\.php|\.css|\.jpe?g|\.png|\.gif|\.ico)$ /index.php?query=%{REQUEST_URI}&%{QUERY_STRING} [NC,L]
Dabei ist zu beachten, dass die Definition
APF-Template
/index.php?query=%{REQUEST_URI}&%{QUERY_STRING}
bindend ist. Diese spezifiziert den Parameter, der vom
PageControllerInputFilter
oder vom
FrontControllerInputFilter genutzt wird, um die per URL übergebenen
Informationen aufzubereiten. Die Ausnahmeregelung
APF-Template
!(index\.php|\.css|\.jpe?g|\.png|\.gif|\.ico)$
kann dabei frei definiert werden.
Um das Framework nun im URL-Rewrite-Modus verwenden zu können, ist es notwenidg, den Registry-Wert
URLRewriting im Namespace
apf::core auf
true zu
setzen. Dies kann durch
PHP-Code
$Reg = &Singleton::getInstance('Registry');
$Reg->register('apf::core','URLRewriting',true);
in der Bootstrap-Datei erledigt werden.
Beim Einsatz der URL-Rewrite-Modus sollte folgendes beachtet werden:
- Ressourcen wie Bilder, CSS-Dateien oder Java-Scripte müssen absolut addressiert werden.
-
Module, die für den Einsatz mit und ohne URL-Rewriting verfasst werden, müssen an den
relevanten Stellen die Information aus der Registry nutzen um die unterschiedlichen Fälle
abbilden zu können.
-
Werden mehrere Bootstrap-Dateien verwendet, müssen diese in der Ausnahmeliste in der
.htaccess-Datei aufgeführt werden.
Um URL-Rewriting ohne Änderung der Applikationen konfigurieren zu können, bringt das
APF einen
Output-Filter
mit, der Links automatisch umschreibt. Um Links explizit davon auszunehmen, kann das Link-Attribut
linkrewrite auf den Wert
false gesetzt werden.
mailto:-Links werden ab Release 1.10 automatisch ausgenommen.
Kommentare
Möchten Sie den Artikel eine Anmerkung hinzufügen, oder haben Sie ergänzende Hinweise? Dann können Sie diese
hier einfügen. Die bereits verfassten Anmerkungen und Kommentare finden Sie in der untenstehenden Liste.
Für diesen Artikel liegen aktuell keine Kommentare vor.