大雑把に言うと、この表で上にあるものが優先される。
なのでnginx.confに書くときもこの順序で書くとよいと思う。
プレフィックス | 説明 |
---|---|
= | 完全一致。一致したら、前方一致と正規表現を適用しない |
^~ | 前方一致。一致したら、正規表現を適用しない |
~ | 正規表現(大文字・小文字を区別する)。一致したら、なしの適用はしない |
~* | 正規表現(大文字・小文字を区別しない)。一致したら、なしの適用はしない |
なし | 前方一致 |
「なし」とはlocation /
のような書き方のこと。
前方一致は、一致する文字列が一番長いもの1個だけが適用される。
正規表現は、設定ファイルに書いた順番で最初に一致したもの1個だけが適用される。
locationはネストできる。
使い分け方としては、
プレフィックス | 用途 |
---|---|
= | 完全に特定のURLだけを対象にしたい場合 |
^~ | ディレクトリ丸ごとを対象にしたい場合。アクセス拒否、BASIC認証、unicornへのプロキシなど |
~ |
~ \.php や~ /\.ht のように拡張子で指定する場合など |
~*
と「なし」はややこしくなるので、どうしても必要でなければ使わない方がいいかもしれない。