[英]How can I get a param using regex in a nginx server block?
我正在尝试通过正则表达式在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”,并且可以在服务器块文件中获取该值。
我不是使用正则表达式的专家,所以我看不出有什么问题。 我需要你们的帮助! 谢谢!
如@Richard所述,您不能在位置正则表达式中使用请求参数。
如果需要在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
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.