To achieve clean URLs the server.error-handler-404
directive can be used. Lighttpd doesn’t have the same problems as apache with POST data, so comments etc. will just work with this method. However it has another problem as described in their FAQ:
The environment (which is relevant when using CGI or FastCGI) is quite normal, but observe the following: […]
QUERY_STRING
is not set, so you have to parse theREQUEST_URI
yourself to get it. […]
This affects only very few things, things like category filters which sometimes can use query strings (and probably a few plugins use that method as well). The fix is easy enough though: just add this to a plugin you have (or create a new plugin):
if (@txpinterface == 'public') {
register_callback("asy_fix_querystring", "pretext");
}
function asy_fix_querystring($event, $step) {
if (!strstr($_SERVER['REQUEST_URI'],'?') or !empty($_GET)) return;
$_SERVER['QUERY_STRING'] = preg_replace('#^.*?\?#','',$_SERVER['REQUEST_URI']);
parse_str($_SERVER['QUERY_STRING'], $_GET);
}
That’s it! Now $_GET
and $_SERVER['QUERY_STRING']
should work as expected.