so etwas wie [NC] kennt lighttpd nicht, genausowenig einen Check, ob die Datei vorhanden ist. Nicht vorhandene Dateien gehen automatisch auf Error 404.
Du solltest unbedingt die lighttpd-Doku zu mod_rewrite lesen. Dann würde Dir klar, dass die Environment-Variablen nicht im gleichen Maße gesetzt sind, sondern Du aus der vorhandenen URL mit einer RegExp herausparsen musst.
Außerdem willst Du für die Umleitung von www.xy auf xy einen redirect, keinen Rewrite. Nur weil Apache das durcheinanderschmeißt, brauchts Du bei lighttpd trotzdem beide Module:
$HTTP["host"] =~ "^www.(.*)$" {
url.redirect = ( "^/(.*)" => "http://%1/$1" )
}
$HTTP["url"] !~ "^index.php" {
url.rewrite-once = ( "^([^?]+)(?(.*))?" => "index.php?filename=$1&$3" )
}
Leider kann in lighttpd keine Variablen ins environment packen, so dass Du nicht mehr REQUEST_FILENAME, sondern $_GET['filename'] nehmen musst.
Gruß, LX
RFC 1925, Satz 2: Egal, wie fest man schiebt, ganz gleich, wie hoch die Priorität ist, man kann die Lichtgeschwindigkeit nicht erhöhen.