NGINX でファイル拡張子に基づいて場所を一致させる
出版された: 2025年2月15日 1:04:10 UTC
最終更新日 2026年1月12日 8:35:44 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 の両方に一致します)。大文字と小文字を区別したい場合は、~ の後の * を削除してください。
一致したものをどうするかはあなた次第です。通常は、何らかの前処理を行うバックエンドに書き換えるか、または、公開されているもの以外のフォルダーからファイルを読み取るだけなど、可能性は無限です ;-)
