- 20 April 2006
- 22.680
- 1.315
Moin.
Ich bin gerade am tüfteln, wie ich es wohl am besten anstelle. Vielleicht hat ja jemand eine Idee.
Mein Ziel: Ein PHP-Frontcontroller, d.h. alle Anfragen werden an ein PHP-Script (index.php) geleitet. Soweit kein Problem, nur möchte ich mod_rewrite dabei zum Einsatz bringen.
Ein Besucher requestet z.B. www.example.com/Startseite.html, mod_rewrite leitet intern an index.php weiter und dieses PHP-Script erkennt anhand von $_SERVER['REQUEST_URI'], welche Seite gewünscht wird und liefert sie.
Meine Vorteile wären: suchmaschinen-freundliche Seitennamen und einfache Fehlerverarbeitung, weil ich ungültige Seiten (HTTP 404) sofort erkenne und passend darauf reagieren kann.
Im Einsatz habe ich folgende .htaccess:
Diese hat nur das Problem, dass sie wirklich jeden Request an den Frontcontroller schickt, also auch z.B. eine Anfrage nach www.example.com/img/layout.jpeg.
Ich habe im Prinzip 2 Möglichkeiten:
Was meint ihr ? Welche Taktik bietet sich an ? Und wie müsste ich meine .htaccess umschreiben, um ein oder mehrere Verzeichnisse von der Regelung auszuklammern ?
P.S. Wer nicht weiß, was ein Frontcontroller is, guckt hier mal:
https://www.klamm.de/forum/showthread.php?t=6712
Ich bin gerade am tüfteln, wie ich es wohl am besten anstelle. Vielleicht hat ja jemand eine Idee.
Mein Ziel: Ein PHP-Frontcontroller, d.h. alle Anfragen werden an ein PHP-Script (index.php) geleitet. Soweit kein Problem, nur möchte ich mod_rewrite dabei zum Einsatz bringen.
Ein Besucher requestet z.B. www.example.com/Startseite.html, mod_rewrite leitet intern an index.php weiter und dieses PHP-Script erkennt anhand von $_SERVER['REQUEST_URI'], welche Seite gewünscht wird und liefert sie.
Meine Vorteile wären: suchmaschinen-freundliche Seitennamen und einfache Fehlerverarbeitung, weil ich ungültige Seiten (HTTP 404) sofort erkenne und passend darauf reagieren kann.
Im Einsatz habe ich folgende .htaccess:
Code:
RewriteEngine On
RewriteRule ^(.*)$ index.php [L]
Ich habe im Prinzip 2 Möglichkeiten:
- Ich lasse den Frontcontroller auch das alles machen. D.h. das Script erkennt, dass das Bild gewünscht wird und schickt es mit passenden Content-type-Header raus. Nachteil is halt, dass ich praktisch die ganze Arbeit des Webservers machen muss Und v.a. kann ich nie mehr eine Datei normal ins Dateisystem setzen, ohne dass mir gleich PHP anspringt, und das möchte ich ungern machen.
- Ich modifiziere die mod_rewrite-Einstellungen, sodass das /img-Verzeichnis von der Umleitung ausgeschlossen wird. Da bin ich aber noch nicht wirklich weitergekommen, weil ich die passenden Zeilen für die .htaccess-Datei nicht finde
Außerdem würde ich so den Vorteil verlieren, auch auf Requests für ungültige Verzeichnisse (z.B. www.example.com/das/gibts/nicht/foo.bar) oder Requests für ungültige Dateiangaben im ausgenommenen Verzeichnis (z.B. www.example.com/img/jdklfjlkjkljkljl.xdfg) reagieren zu können.
Was meint ihr ? Welche Taktik bietet sich an ? Und wie müsste ich meine .htaccess umschreiben, um ein oder mehrere Verzeichnisse von der Regelung auszuklammern ?
P.S. Wer nicht weiß, was ein Frontcontroller is, guckt hier mal:
https://www.klamm.de/forum/showthread.php?t=6712