2012-10-18 51 views
3

要带有特定扩展名的文件相匹配,我们可以利用这一点:如何匹配nginx中扩展少的文件的位置?

位置〜*(PHP | JSP | CGI | PL | PY)$ {}

和预期的所有作品...。?

但是,如果我们有没有任何扩展名的文件,我怎么能匹配他们在'位置'块?!

回答

4

.*.(php|jsp|cgi|pl|py)?$匹配任何数目的后跟另一个字符(.)和零或所列扩展(...)?之一occurence字符(.*)的正则表达式。由于?,此正则表达式应该已经匹配没有扩展名的文件,因为您可以验证here。澄清评论

更新您可以使用正则表达式[^.]+(?!(php|jsp|cgi|pl|py))$这意味着匹配多个字符不得为周期,不跟上市推广。

月2日更新

按照docu of location

没有语法不匹配正则表达式。相反, 匹配目标正则表达式,并分配一个空块

所以,你想每一个具有扩展名的文件相匹配,并指定空块。它类似于你原来的正则表达式,但没有?,你最好在扩展之前逃离点,否则它意味着任何字符。

location ~ .*\..+$ {} 
+0

你好,也许我还不够清楚。 我想要的是匹配现在只'扩展少文件! –

+0

@MarkWurkz我编辑了答案。 – halex

+0

如果我想要一些与众不同的东西...忘了这个例子,我提供了'扩展',我想忽略'任何文件'有扩展名,只接受扩展名较少的文件,我怎么能做到这一点? –