使用 NGINX 根據檔案副檔名匹配位置
已發佈: 2025年2月15日 凌晨1:18:50 [UTC]
本文介紹如何根據 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)。如果希望區分大小寫,只需刪除 ~ 後的 *。
如何安排比賽由你決定;通常,您會將其重寫到執行某種預處理的後端,或者您可能只是想從其他資料夾中讀取文件,而不是從公眾那裡看到的文件,可能性是無窮無盡的;-)