location
リクエスト URI のパスに応じて設定を適用
table:プレフィックスの利用
なし 前方一致(後方参照)
^~ 前方一致(後方不参照)
正規表現より優先順位が高い
= 完全一致
パスが等しい場合
~ 正規表現(大文字/小文字を区別)
~* 正規表現(大文字/小文字を区別しない) |
table:プレフィックスを使った正規表現
/ にだけ一致 location = /
/data にだけ一致 location = /data 1 文字でも異なると一致しない
/data/ には一致しない
/ で始まるすべてのパスに一致 location / ただし、パス評価の優先順位により完全一致、最長一致、正規表現が優先される
/data/ で始まるパスに一致 location ^~ /data/ 一致した後、ほかの location を検索しない
/example/xxx.php に一致(xxx は任意の文字列) location ~ ^/example/(.*\.php)$ 大文字/小文字を区別するため /EXAMPLE/XXX.PHP には一致しない
パス評価の優先順位
1 つの server コンテキスト内に複数の location コンテキストを記述できる
table:優先順位
1 = 完全一致
2 ^~ 前方検索
3 ~ 正規表現
4 ~* 正規表現
5 なし 前方検索
同じ修飾子の場合の評価
ロンゲストマッチ
同じ優先度の場合には上から順に評価
^~ はそれ以降の評価はされない
名前付き location
URI パスの代わりに @名前 のようにできる
エラーページを @error に内部リダイレクト
code:nginx
location / (
error_page 404 @error;
)
location @error (
// TODO
)