Created
April 24, 2012 15:14
-
-
Save justafish/2480481 to your computer and use it in GitHub Desktop.
lighttpd clean URLs for Drupal
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- little helper function | |
function file_exists(path) | |
local attr = lighty.stat(path) | |
if (attr) then | |
return true | |
else | |
return false | |
end | |
end | |
function removePrefix(str, prefix) | |
return str:sub(1,#prefix+1) == prefix.."/" and str:sub(#prefix+2) | |
end | |
-- prefix without the trailing slash | |
local prefix = '' | |
-- the magic ;) | |
if (not file_exists(lighty.env["physical.path"])) then | |
-- file still missing. pass it to the fastcgi backend | |
request_uri = removePrefix(lighty.env["uri.path"], prefix) | |
if request_uri then | |
lighty.env["uri.path"] = prefix .. "/index.php" | |
local uriquery = lighty.env["uri.query"] or "" | |
lighty.env["uri.query"] = uriquery .. (uriquery ~= "" and "&" or "") .. "q=" .. request_uri | |
lighty.env["physical.rel-path"] = lighty.env["uri.path"] | |
lighty.env["request.orig-uri"] = lighty.env["request.uri"] | |
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. ;) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment