在Apache中使用mod_lua时,如何添加像mod_rewrite的QSA标志的查询字符串?

时间:2015-07-14 05:59:12

标签: apache mod-rewrite lua mod-lua

我想编写一个在mod_lua中重写URL的脚本,也就是说我想继承查询字符串,如mod_rewrite的QSA标志。

mod_rewrite config:

RewruteCond ^/foobar/([0-9A-Za-z]+)/(.+)$
RewriteRule ^.*$ /foobar/$2?_ID_=$1 [QSA,L]

我尝试在mod_lua中编码如下,但它不能正常工作。 请告诉我有什么问题? 而且,它能够成为更简单的代码吗?

mod_lua config:

LoadModule lua_module modules/mod_lua.so
LuaHookTranslateName /usr/local/httpd/conf/extra/lua/router.lua app_routing

/usr/local/httpd/conf/extra/lua/router.lua路由:

require "apache2"
function app_routing(r)
  local matches = r:regex(r.uri, [[^/foobar/([0-9A-Za-z]+)/(.+)$]])
  if matches then
    r.uri  = "/foobar/" .. matches[2]
    if r.args then
        r.args = r.args .. "&_ID_=" .. matches[1]
    else
        r.args = "?_ID_=" .. matches[1]
    end
  end
end

0 个答案:

没有答案