regex不允许nginx位置拒绝文件扩展名
在nginx上,我试图对给定子树只允许一些扩展,而拒绝所有其他扩展,如gif、zip、exe、php 我想使用正则表达式来定义允许的扩展 以下是我使用消极前瞻的尝试:regex不允许nginx位置拒绝文件扩展名,regex,nginx,pcre,nginx-location,Regex,Nginx,Pcre,Nginx Location,在nginx上,我试图对给定子树只允许一些扩展,而拒绝所有其他扩展,如gif、zip、exe、php 我想使用正则表达式来定义允许的扩展 以下是我使用消极前瞻的尝试: (\.(?!(jpg | png | jpeg))$正则表达式与输入端的匹配,因为\.和$之间没有消费模式。您需要为扩展添加一个消费模式,例如匹配除以外的任何1+字符的[^.]+: \.(?!(png|jpe?g)$)[^.]+$ 注:我将jpeg | jpg压缩为jpe?g,并在前瞻中添加了字符串结束检查,以便以禁止的扩展名开
(\.(?!(jpg | png | jpeg))$
正则表达式与输入端的
匹配,因为\.
和$
之间没有消费模式。您需要为扩展添加一个消费模式,例如匹配除
以外的任何1+字符的[^.]+
:
\.(?!(png|jpe?g)$)[^.]+$
注:我将jpeg | jpg
压缩为jpe?g
,并在前瞻中添加了字符串结束检查,以便以禁止的扩展名开始的扩展名(如png2
(如果您遇到过)可以匹配,而png
则无法匹配。是的,非常清晰,在前瞻中的$和结尾!
\.(?!(png|jpe?g)$)[^.]+$