Awesome
路由 RadixTree
lua-rax 是在 Lua 中实现的自适应 基数树 , 基于 rax 实现。
规则实现参考 lua-resty-radixtree 。
路径匹配规则
1. 完全匹配
/blog/foo
此时只能匹配 /blog/foo
。
2. 前缀匹配
/blog/bar*
它将匹配带有前缀 /blog/bar
的路径, 例如: /blog/bar/a
、 /blog/bar/b
、 /blog/bar/c/d/e
、 /blog/bar
等。
3. 匹配优先级
完全匹配 -> 深度前缀匹配
以下是规则:
/blog/foo/*
/blog/foo/a/*
/blog/foo/c/*
/blog/foo/bar
路径 | 匹配结果 |
---|---|
/blog/foo/bar | /blog/foo/bar |
/blog/foo/a/b/c | /blog/foo/a/* |
/blog/foo/c/d | /blog/foo/c/* |
/blog/foo/gloo | /blog/foo/* |
/blog/bar | not match |
4. 参数匹配
示例:
/blog/:name
会匹配 /blog/dog
和 blog/cat
。
更多使用方法参考 test.lua
。