Mailinglisten-Archive |
Hi, On Thu, Jun 09, 2005 at 10:13:45AM +0200, Lutz Zetzsche wrote: > mod_rewrite ist nur die zweitbeste Lösung. Außerdem muß man hier > wissen, was man tut. Ein Programmierfehler in den > mod_rewrite-Anweisungen führt unweigerlich zu einem > Serverfehler. Das ist also nichts für jedermann. Es kommt darauf an wie man die Rewrite Rules aufsetzt. Ich habe schon des oefteren auf Servern Rewrite-Regelsaetze gesehen die so lang, kompliziert und unpflegbar waren das man das nicht haben will (fuer jede Seite ein Regelsatz, etc.). Ein anderer Ansatz ist es, die Regeln so einfach und klein wie moeglich zu halten und den Rest, das Mapping der URL zum Content, von einem PHP Request-Parser erledigen zu lassen. eben in der Art, als wenn man einen Apache vor ein Zope mit virt. Host-Monster setzt. Bsp.: RewriteEngine On # diese Regeln fangen die stat. Inhalte der Seite ab. Bilder, CSS,... RewriteRule ^/static/ - [L] RewriteRule ^/images/ - [L] RewriteRule ^/css/ - [L] RewriteRule ^/doc/ - [L] # Der ganze Rest, also jede andere beliebige URL wird weitergeleitet RewriteRule ^/(.*) /parser.php In parser.php kann ich nun auf (fast) alle ENVs zugreifen, als wenn parser.php das ueber die URL aufgerufene Scripte waere. $_SERVER["REQUEST_URI"] $_SERVER["PHP_SELF"] $_SERVER["QUERY_STRING"] $_POST $_GET Rewrites muessen also nicht immer kompliziert sein um mit beliebig komplexen URLs umgehen zu koennen. Die "Kunst" ist nun noch ein sauberes Mapping zwischen oeffentlichen, schoenen URLs und den haesslichen ID URLs zu bekommen. Jede URL die man nicht zuordnen kann einfach wie ein 404 auf eine Standard-Seite umleiten. -- Gruss Jens
php::bar PHP Wiki - Listenarchive