要匹配具有特定扩展名的文件,我们可以使用以下命令:
位置〜.*.(PHP | jsp | cgi | pl | py)?${
}
并且所有工作都按预期进行…
但是,如果我们有没有任何扩展名的文件,该如何在“位置”块中将它们匹配呢?
最佳答案
正则表达式.*.(PHP | jsp | cgi | pl | py)?$匹配任意数量的字符(.*),后跟另一个字符(.)和零或一个出现的扩展名(…)?.由于您可以验证here,因此该正则表达式应该已经与没有扩展名的文件匹配,因为?.
评论澄清后更新
您可以使用正则表达式[^.](?!(PHP | jsp | cgi | pl | py))$表示要匹配多个字符,这些字符不能为句号,且后接扩展名.
第二次更新
there is no Syntax for NOT matching a regular expression. Instead,
match the target regular expression and assign an empty block
因此,您要匹配每个具有扩展名的文件并分配空块.它类似于您的原始正则表达式,但没有?并且最好将扩展名前的点转义,否则意味着任何字符.
location ~ .*\..+${}