2017-01-21 9 views
2

Есть ли разница между тремя следующими директивами?Nginx "location ~." vs "location ~ * ."

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

Это не серверные блоки вообще. плюс это OFF TOPIC – Rafael

ответ

1

Это три формы блока местоположения регулярного выражения. См. this document.

Оператор ~* делает тестовый регистр нечувствительным.

Символ . имеет особое значение в регулярном выражении: соответствие любому одному символу (очень похоже на ? делает в оболочке globs).

Последовательность (экранированная точка) \. соответствует символу буквальной точки. Это означает, что третий пример, вероятно, не тот, который вы хотите (при условии, что вы пытаетесь согласовать URI, заканчивающийся .png).

См. this document для получения дополнительных сведений о регулярных выражениях.

+0

Очень ценится «Агент Смит»! – Evan