はじめに
nginxのlocationの設定でつまづくことがあったので、まとめる。
気付いた点があれば都度更新。
基本
URIのパス毎の設定を記述できる。
基本的には下記の形で記述できる。
location プレフィックス URIのパス {
# パスでの設定
}
プレフィックスの種類
プレフィックスというものでパスの評価形式を指定できる。
下記テーブルの上から記述された順番で優先度が高く、
nginxのlocationの設定は優先度が最も高い設定が一つだけ適用される。
プレフィックス | 説明 |
---|---|
= | 完全一致 |
^~ | 前方一致。一致したら正規表現を適用しない。 |
~ | 正規表現(大文字・小文字を区別する) |
~* | 正規表現(大文字・小文字を区別しない) |
なし | 前方一致 |
前方一致の記述が複数ある場合は、一致する文字列が一番長いものが適用される。
正規表現の記述が複数ある場合は、設定ファイルに書いた順番で最初に一致したものが適用される。
よく使いそうな正規表現
トレイリングスラッシュ有無の統一
location ~ ^/(.*)/$ {
return 301 path # トレイリングスラッシュを消す
}
拡張子の排除
location ~ \.拡張子$ {
# 設定を記述
}