Re: Помогите переписать .htaccess

Igor Sysoev igor на sysoev.ru
Ср Сен 1 23:02:58 MSD 2010


On Wed, Sep 01, 2010 at 02:54:41PM -0400, maxya wrote:

> Еще раз спасибо за ответ. 
> Дополнительно появился вопрос.
> [b]Запросы на картинки приходят в таком
> формате[/b] 
> [code]
> http://sitename.ru/lin/line_l004.png_beg_b017.png_wmax_MjAw_wcur_150_wmin_MTAw.jpg
> [/code]
> (Да, знаю, криво, писал давно и был
> восхищен своим творением :)) )
> Скрипт генерирует картинки на лету,
> поэтому, когда начало приходить 5-8k
> запросов в день, пришлось  добавить
> кеширование. Статические картинки
> хранятся в подпапке cache . 
> Апачем проверялась сначала эта папка и
> отдавалась готовая картинга, в
> противном случае - генерировалась
> новая. 
> Правило .htaccess
> [code]
> RewriteCond %{DOCUMENT_ROOT}/lin/cache/$0 -f
> RewriteRule ^(.*)$ /lin/cache/$0 [QSA,L]
> [/code]
> Задача точно такая же - проверить
> сначала папку cache на наличие картинки,
> отдать, а если нет - то перенаправить на
> скрипт.
> 
> Пытался сделать с alias - не получилось
> [code]
> location  ^~ /lin/ {
>     alias /lin/cache/;
>     #root /lin/cache/;
> 
>     #try_files $request_filename @serveline;
>     try_files $request_uri @serveline;
> 
>     }
> [/code]
> Статику не видит, постоянно генерирует
> новый.
> [b]error.log[/b]
> [code]
> 2010/09/01 22:52:42 [debug] 32219#0: *3 http script var:
> "/lin/line_l004.png_beg_b017.png_wmax_MjAw_wcur_150_wmin_MTAw.jpg"
> 2010/09/01 22:52:42 [debug] 32219#0: *3 try to use file:
> "line_l004.png_beg_b017.png_wmax_MjAw_wcur_150_wmin_MTAw.jpg"
> "/lin/cache/line_l004.png_beg_b017.png_wmax_MjAw_wcur_150_wmin_MTAw.jpg"
> 2010/09/01 22:52:42 [debug] 32219#0: *3 try to use file: "@serveline"
> "/lin/cache/@serveline"
> 2010/09/01 22:52:42 [debug] 32219#0: *3 test location: "@drupal"
> 2010/09/01 22:52:42 [debug] 32219#0: *3 test location: "@serveline"
> 2010/09/01 22:52:42 [debug] 32219#0: *3 using location: @serveline
> "/lin/line_l004.png_beg_b017.png_wmax_MjAw_wcur_150_wmin_MTAw.jpg?"[/code]

    location ~ ^/lin/line_(.*)_beg_(.*)_wmax_(.*)_wcur_(.*)_wmin(.*)\.jpg$ {    
        try_files  /lin/cache$uri  @serveline;
    }

    location @serveline {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_param  SCRIPT_FILENAME  /var/www/maxya/lin/img.php;
        fastcgi_param  QUERY_STRING     line=$1&beg=$2&wmax=$3&wcur=$4&wmin=$5;
        fastcgi_param  REQUEST_METHOD   $request_method;
        fastcgi_param  CONTENT_TYPE     $content_type;
        fastcgi_param  CONTENT_LENGTH   $content_length;
    }


-- 
Игорь Сысоев
http://sysoev.ru



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