rewrite

alexey vilyansky vilyansky at gmail.com
Mon Oct 20 13:10:22 MSD 2008


2008/10/20 Igor Sysoev <is at rambler-co.ru>:
> On Mon, Oct 20, 2008 at 12:36:22PM +0400, alexey vilyansky wrote:
>
>> Есть следующая конструкция в конфиге (nginx 0.7.19 FreeBSD 7.0-RELEASE)
>>
>> location /images {
>>    alias /home/vuser/src/storage;
>>    if (!-f $request_filename) {
>>      rewrite ^/images/(.*)/(.*)_(.*).jpg$ up_0_$3.jpg last;
>>    }
>> }
>>
>> В nginx-error.log следующее:
>>
>> 2008/10/20 11:05:15 [error] 96720#0: *469 open()
>> "/usr/local/etc/nginx/htmlup_0_60.jpg" failed (2: No such file or
>> directory), client: 89.175.80.253, server: vusersite.ru, request: "GET
>> /images/15_10_2008/up_sdf_60.jpg HTTP/1.1", host: "vusersite.ru"
>>
>> Почему картинка ищется там и как сделать чтобы искалась, где она на
>> самом деле лежит?
>
> Потому что if - плохая директива. Что видно в сочетании с alias.
>
> Нужно что-то вроде:
>
>  location /images {
>    alias /home/vuser/src/storage;
>    error_page  404  = @images;
>  }
>
>  location @images {
>    root /home/vuser/src/storage;
>    rewrite ^/images/(.*)/(.*)_(.*).jpg$ /up_0_$3.jpg break;
>  }
>
> Если файл - /home/vuser/src/storage/up_0_....jpg.
>
>
> --
> Игорь Сысоев
> http://sysoev.ru
>
>
Аааа. Вот оно что! Поправил, благодарю за помощь.


More information about the nginx-ru mailing list