nginx 位置正则表达式不起作用

nginx 位置正则表达式不起作用

我正在尝试设置位置指令来匹配我的请求,但无法使其工作。

以下是我的示例请求:

/APP/公共/api/v1/项目/100/类型

location ~* ^/APP/public/api/v1/item/(.*)/type {                
    try_files /APP/data/type/$1.json @apache;   
}

如果我像下面这样设置它就会起作用:

location = ^/APP/public/api/v1/item/100/type {              
   try_files /APP/data/type/100.json @apache;   
}

我是否遗漏了什么?谢谢。

答案1

尝试设置请求处理的上下文,然后在该上下文中使用重写规则,例如:

location ~ ^/APP/public/api/v1/item/ {
  rewrite ^/APP/public/api/v1/item/([0-9]+)/type /APP/data/type/$1.json break;
  try_files $uri @apache;
} 

相关内容