2017-01-21 22 views
2

次の3つのディレクティブに違いはありますか?Nginx "location〜。" vs "場所〜* "

location ~* \.(png)$ { 
    expires max; 
    log_not_found off; 
} 

location ~ \.(png)$ { 
    expires max; 
    log_not_found off; 
} 

location ~ .(png)$ { 
    expires max; 
    log_not_found off; 
} 

これまでに時間を費やしてくれてありがとうございます。

+0

これらはサーバーブロックではありません。これはオフトピックです – Rafael

答えて

1

これらは3つの形式の正規表現ロケーションブロックです。詳細はthis documentを参照してください。

オペレータ~*オペレータは、テストケースを区別しません。

.文字は正規表現で特別な意味を持ちます。つまり、任意の1文字に一致します(?はシェルのglobsと同じように)。

\.シーケンス(エスケープドット)は、リテラルドット文字と一致します。これは、3番目の例がおそらくあなたが望むものではないことを意味しています(URIが.pngで終わるものと一致させようとしていると仮定して)。

正規表現の詳細については、this documentを参照してください。

+0

非常に感謝 "エージェントスミス"! – Evan

関連する問題