Quicknavi |
|
URL-Rewriting
1. Einleitung
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.
2. Konfiguration
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.
2.1. Apache-Konfiguration
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:
# 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
/index.php?query=%{REQUEST_URI}&%{QUERY_STRING}
bindend ist. Diese spezifiziert den Parameter, der vom pagecontrollerRewriteRequestFilter
oder vom frontcontrollerRewriteRequestFilter genutzt wird, um die per URL übergebenen
Informationen aufzubereiten. Die Ausnahmeregelung
!(index\.php|\.css|\.jpe?g|\.png|\.gif|\.ico)$
kann dabei frei definiert werden.
2.2. Framework-Konfiguration
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
$Reg = &Singleton::getInstance('Registry'); $Reg->register('apf::core','URLRewriting',true);
in der Bootstrap-Datei erledigt werden.
3. Einsatz von URL-Rewriting
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.
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.
|