ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: rewrite



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


  • References:

 




Copyright © Lexa Software, 1996-2009.