使用 NGINX 根據檔案副檔名匹配位置
已發佈: 2025年2月15日 凌晨1:18:50 [UTC]
最後更新: 2026年1月12日 上午8:35:54 [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)。如果要區分大小寫,只需刪除 ~ 後面的 * 即可。
如何處理比賽結果取決於你;通常情況下,你會將其重寫到後端進行某種預處理,或者你可能只是想從公眾看不到的其他文件夾中讀取文件,可能性無窮無盡 ;-)
