Miklix

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

已出版: 2025年2月15日 UTC 01:18:38
最后更新 2026年1月12日 UTC 08:35:53

本文解释了如何在 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上固定

Mikkel Christensen

关于作者

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