phpbar.de logo

Mailinglisten-Archive

[php] mod_rewrite

[php] mod_rewrite

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Die Mai 8 11:02:41 CEST 2007


Hallo,

Am Dienstag, 8. Mai 2007 schrieb Jens Giessmann:
> On Tue, May 08, 2007 at 08:59:23AM +0200, LB BL wrote:
> > ich möchte mit mod_rewrite url's umschreiben, stosse dabei jedoch
> > auf folgendes "problem":
>
> Mach es "andersrum", d.h. packe nicht alle deine variablen URLs in
> einzelne Rules, sondern nehme "nur" alles was direkt ausgeliefert
> werden kann aus und leite nur noch den Rest an ein Script weiter das
> den Request prueft und ggfs. die entspr. Seite ausliefert:
>
> Bsp:
> --------------------------------schnipp-----------------------------
> RewriteEngine On
> # diese Regeln fangen die stat. Inhalte der Seite ab. Bilder, CSS,...
> RewriteRule ^/images/ - [L]
> RewriteRule ^/css/ - [L]
> # Alles was direkt an die index.php geht kann auch 1:1 raus
> RewriteRule ^/index.php - [L]
> # Der ganze Rest, also jede andere beliebige URL wird weitergeleitet
> RewriteRule ^/(.*) /prod_parser.php
> --------------------------------schnapp-----------------------------
>
> Wenn jetzt eine Anfrage der Art kommt:
> www.domain.de/produktAbkuerzungAusDB/produktNameAusDB.html
>
> Kannst du in prod_parser.php die angefragte URL anhand von den
> $_SERVER[*] Werten auseinander nehmen, pruefen ob du das passende
> Produkt in der DB hast, wenn ja, dieses anzeigen, ansonsten Umleitung
> auf eine 404 Seite.

ich muß hierzu einmal kurz einhaken. :-)

Jens hat seinen Lösungsansatz erstmals vor ca. zwei Jahren auf der Liste 
vorgestellt:

http://lists.phpbar.de/pipermail/php/Week-of-Mon-20050606/018692.html

Ich fand den Ansatz, obwohl ich ein Freund statischer Seiten bin, sehr 
interessant und habe mir das bis letztes Jahr im Hinterkopf behalten, 
weil das Vorgenerieren statischer Seiten hinsichtlich Flexibilität und 
Skalierung auch seine Grenzen hat. In der zweiten Jahreshälfte 2006 
habe ich meine Website dann auf Jens' Lösung umgestellt, allerdings 
darüber hinaus kombiniert mit dem Smarty-Cache, wobei die Cache-ID aus 
der URL gebaut wird. Auf diese Weise kombiniere ich die Vorteile von 
Jens' Lösung mit den Vorteilen statischer Seiten. Ist eine Seite erst 
einmal im Smarty-Cache, kann ich sogar die Datenbank abschalten und die 
Seite kommt immer noch. Nur eine Seite, die nicht im Cache ist, kann 
dann nicht ausgeliefert werden.

Kurz gesagt: Ich finde Jens' Lösung genial. Das habe ich ihm auch 
letztes Jahr per PM geschrieben. ;-)

Wer sich einmal ansehen möchte, wie das Ganze umgesetzt nach außen 
aussieht, kann einmal auf meiner Website gucken:

	http://www.sea-rescue.de/

Bei Interesse kann ich auch gerne erläutern, wie ich das konkret 
umgesetzt habe. :-)


Viele Grüße
Lutz

php::bar PHP Wiki   -   Listenarchive