Nginx 映射正则表达式

Nginx Map Regex

我正在尝试 return 当 content_type 不是 application/json 使用 Nginx 时出现 415 错误,这意味着我需要允许 content_type application/json 使用地图我取得了以下成绩

map $content_type $ct_check{
"application/json" 'pass';
~*(.*)'failed';
default      'pass';

但是我的最终客户发送了多种内容类型,例如 application/json;charset-utf8 这样的东西,所以我需要一个正则表达式来允许所有 content_type 以 application/json 开头尝试了多种组合但没有成功

要测试 $content_type 是否以 application/json 开头,请使用包含“字符串锚点开头”(^) 的正则表达式。

例如:

~*^application/json  pass;

将此正则表达式放在 ~*(.*) 'failed'; 语句之上,因为正则表达式是按顺序求值的。