start-server.lua 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. local xavante = require "xavante"
  2. local filehandler = require "xavante.filehandler"
  3. local cgiluahandler = require "xavante.cgiluahandler"
  4. local redirect = require "xavante.redirecthandler"
  5. local conf = (require "conf.conf").sailor
  6. -- Define here where Xavante HTTP documents scripts are located
  7. local webDir = "."
  8. local uri_map
  9. if conf.friendly_urls then
  10. uri_map = { -- URI remapping
  11. match = "^[^%./]*/?([^%.]*)$",
  12. with = redirect,
  13. params = {
  14. "/",
  15. function(req,res,cap)
  16. local vars = {}
  17. for var in string.gmatch(cap[1], '([^/]+)') do
  18. table.insert(vars,var)
  19. end
  20. if #vars > 0 then
  21. local mod = (#vars % 2) - 1
  22. local get = ""
  23. if #vars > 1 - mod then
  24. for i = 2 - mod, #vars, 2 do
  25. get = get.."&"..vars[i].."="..vars[i+1]
  26. end
  27. end
  28. if mod == -1 then
  29. get = vars[2]..get
  30. end
  31. req.cmd_url = "/index.lua?"..conf.route_parameter.."="..vars[1].."/"..get
  32. else
  33. req.cmd_url = "/index.lua"
  34. end
  35. return "reparse"
  36. end
  37. }
  38. }
  39. else
  40. uri_map = {
  41. match = "^[^%./]*/$",
  42. with = redirect,
  43. params = {"index.lua"}
  44. }
  45. end
  46. local simplerules = {
  47. uri_map,
  48. { -- cgiluahandler example
  49. match = {"%.lp$", "%.lp/.*$", "%.lua$", "%.lua/.*$" },
  50. with = cgiluahandler.makeHandler (webDir,{ reload = true })
  51. },
  52. { -- filehandler example
  53. match = ".",
  54. with = filehandler,
  55. params = {baseDir = webDir}
  56. },
  57. }
  58. xavante.HTTP{
  59. server = {host = "*", port = 8080},
  60. defaultHost = {
  61. rules = simplerules
  62. }
  63. }
  64. xavante.start()