-- the magic ;) attr = lighty.stat(lighty.env["physical.path"]) if (not attr) then -- file does not exist. check if we have a cached version lighty.env["physical.path"] = lighty.env["physical.path"] .. ".html" attr = lighty.stat(lighty.env["physical.path"]) if (not attr or (attr and not attr["is_file"])) then -- file still missing. pass it to the fastcgi backend lighty.env["uri.path"] = "/dispatch.fcgi" lighty.env["physical.rel-path"] = lighty.env["uri.path"] lighty.env["physical.path"] = lighty.env["physical.doc-root"] .. lighty.env["physical.rel-path"] end end -- fallthrough will put it back into the lighty request loop -- that means we get the 304 handling for free. ;) -- debugging code -- print ("final file is " .. lighty.env["physical.path"])