WIP: routes???

This commit is contained in:
Catalin Constantin Mititiuc 2025-05-18 14:46:15 -07:00
parent 6a634ceea3
commit 8a92d0451b
3 changed files with 79 additions and 14 deletions

View File

@ -16,22 +16,39 @@ http {
include mime.types;
charset utf-8;
location / {
default_type text/html;
location = /posts {
# rewrite ^ /posts/ last; # loads "/posts/"
# rewrite ^ /posts/ break; # loads "/posts/index.html"
rewrite_by_lua_block {
-- equivalent to `rewrite ^ /posts/ break;`
ngx.req.set_uri("/posts/", false)
}
}
location /foo {
default_type text/html;
rewrite_by_lua_block {
routes = require "routes"
routes:dispatch()
location = /posts/ {
content_by_lua_block {
return ngx.redirect("/posts", ngx.HTTP_MOVED_PERMANENTLY)
}
}
location /posts/ {
content_by_lua_block {
require "routes":dispatch()
-- ngx.req.set_uri("/posts/2023-08-03-recursively-list-all-files-in-a-directory-with-elixir.html")
-- ngx.req.set_uri(ngx.var.uri, false)
-- ngx.req.set_uri("/posts/index.html", false)
}
# rewrite ^ /posts/2023-08-03-recursively-list-all-files-in-a-directory-with-elixir.html break;
}
location /css {
expires 1h;
alias css;
}
location /blah {
rewrite ^/posts$ /posts/2023-08-03-recursively-list-all-files-in-a-directory-with-elixir.html break;
}
}
}

View File

@ -1,6 +1,8 @@
local route = require("resty.route").new()
route:get("/foo", function(self)
local uri = "/posts/2023-08-03-recursively-list-all-files-in-a-directory-with-elixir.html"
return ngx.req.set_uri(uri, true)
route:get("=/posts/index.html", function(self)
return ngx.exec("/posts/index.html")
end)
route:get("=/posts/", function(self)
return ngx.req.set_uri("/posts/index.html", false)
end)
return route

View File

@ -1,7 +1,53 @@
route = require("resty.route").new!
route\get "/foo", =>
uri = "/posts/2023-08-03-recursively-list-all-files-in-a-directory-with-elixir.html"
ngx.req.set_uri(uri, true)
-- flag = last: true, break: false
route\get "=/posts/index.html", =>
-- ngx.req.set_uri("/posts/index.html", false)
ngx.exec("/posts/index.html")
route\get "=/posts/", =>
-- ngx.req.set_uri("/posts/2023-08-03-recursively-list-all-files-in-a-directory-with-elixir.html", false)
-- ngx.exec("/posts/2023-08-03-recursively-list-all-files-in-a-directory-with-elixir.html")
-- ngx.say("resty-route " .. ngx.var.uri)
-- ngx.req.set_uri(ngx.var.uri, false)
-- @render "somecontent", @context
ngx.req.set_uri("/posts/index.html", false)
-- ngx.req.set_uri("/posts/2023-08-03-recursively-list-all-files-in-a-directory-with-elixir.html", true)
-- ngx.say ngx.var.uri
-- ngx.exec("/about.html")
-- ngx.exec("/posts/2023-08-03-recursively-list-all-files-in-a-directory-with-elixir.html")
-- route\get "#/posts/([%w%-%_]+)[.](%w+)", (file, ext) =>
-- ngx.req.set_uri("/posts")
-- ngx.say ngx.var.uri
-- ngx.exec "/posts/#{file}.#{ext}"
-- ngx.req.set_uri("/posts/2023-08-03-recursively-list-all-files-in-a-directory-with-elixir.html")
-- route\get "#/posts/([%w%-%_]+)", (id) =>
-- ngx.say "<p>hello</p>"
-- route\get "#/posts/(%w+)", (id) =>
-- ngx.say file
-- ngx.exec "/posts/2023-08-03-recursively-list-all-files-in-a-directory-with-elixir.html"
-- route\get "=/posts", =>
-- route\get "#/posts/([%w%-%_]+)", (id) =>
-- ngx.exec "/posts/2023-08-03-recursively-list-all-files-in-a-directory-with-elixir.html"
-- ngx.req.set_uri("/posts")
-- ngx.exec "/posts/2023-08-03-recursively-list-all-files-in-a-directory-with-elixir.html"
-- router\to "/about.html", "get"
-- require("moon").p route
-- { one: "two" }
-- ngx.say [k .. v for k, v in pairs { one: "two" }]
-- keys = [k .. "\n" for k,v in pairs @]
-- keys = [k .. "\n" for k,v in pairs @]
-- ngx.log(ngx.ERR, @)
-- ngx.say [k .. v for k, v in pairs route]
-- ngx.say type(route)
-- uri = "/posts/2023-08-03-recursively-list-all-files-in-a-directory-with-elixir.html"
-- ngx.req.set_uri("/about.html")
-- ngx.say "<p>/posts</p>"
-- @to "/", "get"
route