Miklix

使用 NGINX 根据文件扩展名匹配位置

已出版: 2025年2月15日 UTC 01:18:38

本文介绍如何根据 NGINX 中位置上下文中的文件扩展名进行模式匹配,这对于 URL 重写或根据文件类型以不同方式处理文件很有用。


为了使尽可能多的人能够访问本页面,本页面由英文机译而成。遗憾的是,机器翻译技术尚不完善,因此可能会出现错误。如果您愿意,可以在此处查看原始英文版本:

Match Location Based on File Extension with NGINX

本文中的信息基于在 Ubuntu Server 14.04 x64 上运行的 NGINX 1.4.6。它可能对其他版本有效,也可能无效。

我并不擅长正则表达式(我知道我应该努力学习这一点),所以当我需要在例如 NGINX 的位置上下文中执行比最简单的模式匹配更多的事情时,我经常需要阅读它。

如果您需要以不同方式处理特定文件类型,那么根据请求文件的扩展名匹配位置的功能非常有用。而且这也非常简单,您的位置指令可以简单地如下所示:

location ~* \.(js|css|html|txt)$
{
    // do something here
}

当然,您可以将扩展名更改为您需要的任何内容。

上面的例子不区分大小写(例如,它将匹配 .js 和 .JS)。如果要区分大小写,只需删除 ~ 后面的 * 即可。

如何处理匹配项取决于您自己;通常,您会将其重写到执行某种预处理的后端,或者您可能只想从其他文件夹中读取文件,而不是从公众那里看到的文件,可能性是无穷无尽的 ;-)

分享至 Bluesky在 Facebook 上分享在 LinkedIn 上分享在 Tumblr 上分享分享至 X在 LinkedIn 上分享在Pinterest上固定

米克尔·邦·克里斯滕森

关于作者

米克尔·邦·克里斯滕森
迈克尔 是 miklix.com 的创建者和所有者。他拥有 20 多年的专业计算机程序员/软件开发人员经验,目前全职受雇于一家大型欧洲 IT 公司。不写博客时,他把业余时间花在各种兴趣、爱好和活动上,这在一定程度上反映在本网站涵盖的各种主题上。