设置内容根据网址/nginx进行处置



让nginx提供带有像http://foobar.tld/<random_dir>/<file_md5sum_as_filename>这样的url的静态文件,我希望如果我在url的末尾指定?f="filename.filetype" - nginx在末尾解析该查询字符串(如果指定)并准备新内容,释放匹配的指定参数,并且没有任何动态后端,这是不可能的。

或实例http://foobar.tld/<random_dir>/<file_md5sum_as_filename>?f="foobar.pdf"

这样的事情可以用nginx/lua模块完成吗?有没有人有任何有用的例子或做过类似的事情?

Pure Nginx 配置

location / {
  if ($arg_f) {
    add_header Content-Disposition "attachment; filename=$arg_f";
  }
}

这在nginx-lua中确实是可能的;特别是header_filter_by_lua指令。

像下面这样的东西应该可以解决问题:

location / {
  header_filter_by_lua '
    local args = ngx.req.get_uri_args()
    if not args.f then return end
    ngx.header["Content-Disposition"] = "attachment; filename=" .. args.f
  ';
}

相关内容

  • 没有找到相关文章

最新更新