regex-如何匹配nginx中扩展名较少的文件的位置?

前端之家收集整理的这篇文章主要介绍了regex-如何匹配nginx中扩展名较少的文件的位置? 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

要匹配具有特定扩展名的文件,我们可以使用以下命令:

位置〜.*.(PHP | jsp | cgi | pl | py)?${
}

并且所有工作都按预期进行…

但是,如果我们有没有任何扩展名的文件,该如何在“位置”块中将它们匹配呢?

最佳答案
正则表达式.*.(PHP | jsp | cgi | pl | py)?$匹配任意数量的字符(.*),后跟另一个字符(.)和零或一个出现的扩展名(…)?.由于您可以验证here,因此该正则表达式应该已经与没有扩展名的文件匹配,因为?.

评论澄清后更新

您可以使用正则表达式[^.](?!(PHP | jsp | cgi | pl | py))$表示要匹配多个字符,这些字符不能为句号,且后接扩展名.

第二次更新

根据docu of location

there is no Syntax for NOT matching a regular expression. Instead,
match the target regular expression and assign an empty block

因此,您要匹配每个具有扩展名的文件并分配空块.它类似于您的原始正则表达式,但没有?并且最好将扩展名前的点转义,否则意味着任何字符.

location ~ .*\..+${}

猜你在找的Nginx相关文章