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
Bitte geben Sie Ihren Kommentar hier ein. Füllen Sie alle mit * gekennzeichneten Felder vollständig und korrekt aus. Um zum Artikel zurückzukehren klicken sie bitte hier. Zur Formatierung des Textes können folgende BBCode-ähnliche die Zeichen verwendet werden:- [f]..[/f]: fett
- [k]..[/k]: kursiv
- [u]..[/u]: unterstrichen
Hinweis: Formatierungszeichen in Name und E-Mail-Adresse werden nicht akzeptiert.
|