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:

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?apf-rewrited-query=%{REQUEST_URI}&%{QUERY_STRING} [NC,L]
Dabei ist zu beachten, dass die Definition
APF-Template
/index.php?apf-rewritten-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.

In den Versionen vor Release 1.15 lautet der Name des Parameters apf-rewrited-query statt apf-rewritten-query.
In den Versionen vor Release 1.13 lautet der Name des Parameters query statt apf-rewrited-query.

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
PHP-Code
Registry::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.

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.

Weiterhin kann der in Release 1.14 eingeführte Link-Generierungs-Mechnismus genutzt werden um Links direkt in der gewünschten Form formatieren zu lassen.

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.