Adventure,PHP,Framework,PageController,FrontController,Pattern,Objektorientierung,OO,Software,Design,Wiederverwendbarkeit,UML,Tutorial,Benchmark,ausgezeichnete Performance

Suche:    
Downloads  |  SVN!  |  Roadmap  |  Forum!  |  Bugtracking  |  Gästebuch  |  Backlinks!  |  Referenzen!  |  Sitemap  |  Impressum  
 
Deutsch | English Adventure PHP Framework  Bookmark @ Technorati Bookmark @ del.icio.us Bookmark @ Mr. Wong Bookmark @ Simpy Bookmark @ Google Bookmark @ Digg.com Adventure PHP Framework Seite 069-URL-Rewriting drucken!

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.


Powered by WebRing.