Lighttpd Rewrites για το OpenCart
Εισαγωγή
Ο Lighttpd είναι ο web-server που χρησιμοποιούμε για να παρέχουμε τις υπηρεσίες hosting και ο οποίος σχεδιάστηκε με γνώμονα την ασφάλεια, ταχύτητα, ευελιξία και συμβατότητα με τα περισσότερα λειτουργικά συστήματα. Για τη λειτουργία rewrites, ο Lighttpd δεν χρησιμοποιεί την ίδια σύνταξη με τον Apache, αλλά έχει το δικό του plugin ώστε να κάνει ο ίδιος τα rewrites ή μπορεί να γίνει και χρήση άλλων γλωσσών προγραμματισμού ώστε να κάνουν αυτές τα rewrites. Για τα συγκεκριμένα rewrites έγινε χρήση του ModMagnet και της γλώσσας προγραμματισμού LUA.
Ρυθμίσεις
Θα πρέπει να προσθέσετε τον παρακάτω κώδικα στο αρχείο /usr/local/etc/lighttpd/opencart.lua
local prefix = ''
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
function file_excludes(filename)
local extensions = {jpg = true; gif = true; png = true; jpeg = true; js = true; css = true; txt = true};
if extensions[(filename:match"%.(.-)$" or ""):lower()] then
return true
elseif filename:find"^/404.php$" then
return true
else
return false
end
end
if (not file_excludes(lighty.env["physical.rel-path"])) then
if (not file_exists(lighty.env["physical.path"])) then
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 "") .. "_route_=" .. 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
endκαι στη συνέχεια να προσθέσετε στο lighttpd.conf την παρακάτω ρύθμιση:

