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:

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:Hinweis: Formatierungszeichen in Name und E-Mail-Adresse werden nicht akzeptiert.

Name:*
E-Mail:*

Kommentar:


Bestätigungscode:*