ПРОЕКТЫ 


  АРХИВ 


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: [SPAM]Редирект файл ов на скрипт




On 09.06.2009, at 18:16, Vasiliy Petrov wrote:

Здравствуйте, Nginx-ru

Хочется, чтобы запросы на zip- и rar-файлы, передавались бы php- скрипту
для сбора статистики.

Но когда в браузере пишу http://www.mysite.com/1.zip, то появляется
диалог сохранения файла, файл 1.zip скачивается, но внутри него вместо
данных находится код скрипта!

(Скрипт - это downloads pepper для mint, он
работает много где, т.е. сам скрипт рабочий.
Хомяк: http://pepper.pralinenschachtel.de/ ).

На сервере Ubuntu 9.04 установлен nginx 0.7.5.9/php/php-fpm последние.
Nginx работает один, апача нету.

В конфиге моего сайта следующее:

location ~ \.(zip|rar)$ {
-  root /path/to/public_dir/;
  if (!-f $request_filename) {
а это зачем?
error_page 404 ...;
     rewrite  ^(.*)$  download.html redirect;
  }

- rewrite ^(.*)$ /path/to/script/downloads/tracker.php?url=http:// $http_host/$request_uri break; + rewrite ^ http://имя_сайта/path/to/script/downloads/tracker.php? url=http://$host$request_uri&force last;
+  rewrite_log on;
это покажет в error_log-е что он там рерайтит

}

location ~ \.php(.*)$ {
-  root /path/to/public_dir/;
рут зачем везде указывать?
  fastcgi_pass   127.0.0.1:9000;
  fastcgi_index  index.php;
- fastcgi_param SCRIPT_FILENAME /path/to/public_dir $fastcgi_script_name;
# Нужна ли строка выше для чего-либо? Просто уже всё, что мог предположить перепробовал

  include /usr/local/nginx/conf/fastcgi_params;
локейшн с пхп лучше поставить в начало конфига
}

Подскажите плиз в чем тут дело

P.S. В доке по использованию скрипта есть пример для апача:
<FilesMatch "\.(zip|rar|tar\.gz)$">
 RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)$ http://site.com/path/downloads/tracker.php?url=http:// %{HTTP_HOST}%{REQUEST_URI}&force
</FilesMatch>
или ход конём:
в итоге мы имеем задачу запустить такой-то скрипт при вызове такого-то ури? тогда:

location                        ~* \.(zip|rar)$ {
 include include/fastcgi_param;
fastcgi_param SCRIPT_FILENAME $document_root/path/downloads/ tracker.php;
 fastcgi_param QUERY_STRING url=http://$host$request_uri&force;
# fastcgi_index index.php;
# fastcgi_pass_request_body off;
# client_body_in_file_only clean;
 fastcgi_pass php5-cluster;
}
где то так



--
С уважением,
Vasiliy Petrov                          mailto:vipet@xxxxxx






 




Copyright © Lexa Software, 1996-2009.