这个正则表达式不起作用。在
下面是一个。在
location ~* /a2aEx\?.*$ {
}
我请求/a2aEx?AID=ASA_1&BID=1
,但是NGINX用404 status
响应
但是,如果我将其修复到下面,它可以正常工作,返回200 status
我用下面的代码验证Python上的正则表达式。在
text = "/a2aEx?AID=ASA_1&BID=1"
reObj = re.match("/a2aEx\?.*$", text)
print reObj.string # it returns `/a2aEx?AID=ASA_1&BID=1`
看到这个症状,转义字符(\
)并不像我预期的那样工作。在
逃跑的问题?在
尝试以下操作之一:
反斜杠加倍
将regex放入引号中
替换为字符类
你的正则表达式很好。问题在于Nginx如何检查传入的请求。在
Nginx将
?
之后的任何内容作为请求中的查询字符串。location
块与示例中的$uri
变量(/a2aEx
)匹配。位置块不检查$args
变量,这正是您试图匹配的对象。在第二个示例正确匹配
$uri
变量。在要对参数进行操作,可以使用Nginx的
if
运算符,但它是generally discouraged.相关问题 更多 >
编程相关推荐