加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

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

发布时间:2020-12-13 20:57:40 所属栏目:Nginx 来源:网络整理
导读:要匹配具有特定扩展名的文件,我们可以使用以下命令: 位置?.*.(php | jsp | cgi | pl | py)?${ } 并且所有工作都按预期进行 但是,如果我们有没有任何扩展名的文件,该如何在“位置”块中将它们匹配呢? 最佳答案 正则表达式.*.(php | jsp | cgi | pl | py)?

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

位置?.*.(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 ~ .*..+${}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读