Nginx位置的正则表达式,是否需要转义正斜杠?

问题描述 投票:1回答:1

[Nginx使用PCRE引擎评估正则表达式,documentation state不使用/分隔符,因此我们不必像在标准正则表达式中那样在URI中转义正斜杠/。有效的Nginx正则表达式的示例是location ~* /myapp/.+\.php$

BUT以下代码转义了正斜杠

location ~ ^\/(?:index|core\/ajax\/update|ocs\/v2|ocm-provider\/.+)\.php(?:$|\/)

\/在此上下文中到底是什么意思,为什么在文档中另有说明时需要它?

regex nginx regex-group nginx-location nginx-config
1个回答
2
投票

虽然Nginx不需要转义正斜杠/,但它也不拒绝转义它,就像我们可以转义任何其他字符一样。

正则表达式特殊字符\的第一个目的是转义下一个字符,因此nginx只是将\/转换/匹配为/,就像它将\j转换/匹配为文字j(该示例毫无用处,至少要匹配\j匹配文字j)。

© www.soinside.com 2019 - 2024. All rights reserved.