由于遗留原因,我有类似这样的 URL https://host.example.com/foo.cgi?id=nnn
。我想/foo.cgi?id=nnn
用文件的内容进行响应nnn.html
,其中nnn
是一个变化的数字。
在 nginx 中,如何定义从 URL 路径到不同文件路径的自定义映射而不生成重定向?(也就是说,虽然我希望nnn.html
提供 的内容,但我希望浏览器可见的 URL 继续为foo.cgi?id=nnn
。)
答案1
假设 URI/foo.cgi
已失效,您可以使用完全匹配块通过语句location
来处理参数。id
try_files
例如:
location = /foo.cgi {
root /path/to/files;
try_files /$arg_id.html =404;
}
该 URI/foo.cgi?id=123
将导致 Nginx 搜索文件,/path/to/files/123.html
如果未找到则返回 404 状态。