使用 NGINX 根据文件扩展名匹配位置
已出版: 2025年2月15日 UTC 01:18:38
本文介绍如何根据 NGINX 中位置上下文中的文件扩展名进行模式匹配,这对于 URL 重写或根据文件类型以不同方式处理文件很有用。
为了使尽可能多的人能够访问本页面,本页面由英文机译而成。遗憾的是,机器翻译技术尚不完善,因此可能会出现错误。如果您愿意,可以在此处查看原始英文版本:
Match Location Based on File Extension with NGINX
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
}
{
// do something here
}
当然,您可以将扩展名更改为您需要的任何内容。
上面的例子不区分大小写(例如,它将匹配 .js 和 .JS)。如果要区分大小写,只需删除 ~ 后面的 * 即可。
如何处理匹配项取决于您自己;通常,您会将其重写到执行某种预处理的后端,或者您可能只想从其他文件夹中读取文件,而不是从公众那里看到的文件,可能性是无穷无尽的 ;-)