我正在尝试通过nginx服务器中的服务器块中的正则表达式获取一个参数(例如h = 1500),但它不起作用。我的最后一次尝试是这样的:
location ~ "^/app/events/(?<eventid>\d+)/(?<image>.+)?h=(?<height>\d+)$" { ...... }
您可以在这里查看并运行:https://regex101.com/r/kP9eY9/1
但是在我的服务器阻止文件中它不是。
如果我尝试这样的话,那就有效:
location ~ "^/app/events/(?<eventid>\d+)/(?<image>.+)/(?<height>\d+)$" { ...... }
而是像“h = 300”这样的参数,我只使用“/ 300”,我可以在服务器块文件中获取值。
我不是使用正则表达式的专家,所以我看不出有什么不对劲。我需要你的帮助!谢谢!
答案 0 :(得分:2)
答案 1 :(得分:0)
正如@Richard所说,你不能在regexps的位置使用请求参数。
如果您需要在nginx配置中使用请求参数,可以使用 $ arg _ 和/或 $ args 语法:
http://nginx.org/en/docs/http/ngx_http_core_module.html#var_arg_ http://nginx.org/en/docs/http/ngx_http_core_module.html#var_args
即
location / {
if ($arg_param = 'someval') {
# some code here
}
}