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