nginxでの正規表現の「^」「~」「~*」って何?
それぞれ、以下の意味があります。
「^」 先頭からマッチ
「~」 大文字と小文字の区別をする
「~*」 大文字と小文字の区別をしない
以下のような場合についてみてみましょう。
※Serverディレクティブから必要な箇所だけを抜粋しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
server { location ^/test/$ { root /kamot/tora/test; break; } location ~ \.css$ { try_files $uri break; } location ~* \.(gif|jpe?g|png)$ { try_files $uri break; } } |
具体的にみてみます。
「/test/」の箇所ですが、先頭が「/」、最後($)が「/」となっているので、「/test/」に完全にマッチする場合のみが対象になります。
「css」を処理する箇所ですが、大文字小文字の区別をする「~」となっているので「kamo.CSS」はここにマッチしません。
「gif」等の画像を処理する箇所ですが、大文字小文字の区別をしない「~*」となっているので「kamo.JPG」や「tora.PnG」もここでマッチします。