Re: Как правильно задать локейшн

Maxim Dounin mdounin на mdounin.ru
Чт Дек 17 17:16:38 MSK 2009


Hello!

On Thu, Dec 17, 2009 at 04:30:58PM +0300, Андрей Бойко wrote:

> Добрый день.
> 
> Есть локейшн 
>         location ~* ^.+\.(swf|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|wmv|avi|asp)$ 		{
>             ssi on;
>             root        /usr/local/www/htdocs;
>             expires 24h;
>         }
> Он призван отдавать статику напрямую
> Кто-то умный загрузил кучу файлов вида xxx.GIF, и для этих файлов локейшн не срабатывает. Как ему правильно дать понять, что регистр может быть любой?

http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#location

Там достаточно однозначно написано, что "~*" - это caseless match, 
указанный location должен срабатывать.

То, что он не срабатывает - это бага, появилось где-то в 0.8.*, 
сейчас буду смотреть подробнее.

Quick workaround - поставить caseless явно в регулярное выражение:

    location ~ (?i)\.(swf|gif|...)$ {
        ...
    }

Maxim Dounin



Подробная информация о списке рассылки nginx-ru