Lighttpd Rewrite Vs Redirect
A recurring source of confusion for Lighttpd users is the interaction between mod_rewrite and mod_redirect.
Mod_rewrite always takes precedence over mod_redirect, so if a mod_redirect needs to be executed before a mod_rewrite, they must be constrained to act on mutually exclusive URLs.
For example if a www URL needs to be directed to the non-www one, the code would be
$HTTP ["host"] =~ "^www\.(.*)" {
url.redirect = ( "^/(.*)" => "http://%1/$1" )
}
$HTTP ["host"] !~ "^www\." {
# rewrite rules go here.
}
In this case, the mod_rewrite would be executed only after the mod_redirect has stripped off the www from the URL.