rewrite && nginx == T_T

Igor Sysoev is at rambler-co.ru
Wed Feb 25 10:40:06 MSK 2009


On Wed, Feb 25, 2009 at 01:13:20AM +0200, Sandel wrote:

> Здравствуйте!
> Столкнулся с проблемой нджинкса... Вот недавно решил перейти с апача, на него...
> Юзаю nginx 0.6.35
> Есть кусок кода конфига:
> server {
> ...
>      location / {
>             root   /var/www/site/;
>             index  index.php index.html index.htm;
>             rewrite ^/(.*)\.png$ u.php?anime=$1 last;
>         }
> 
>         error_page   500 502 503 504  /50x.html;
>         location = /50x.html {
>             root   /usr/local/www/nginx-dist;
>         }
>         location ~ \.php$ {
>             root           html;
>             fastcgi_pass   unix:/var/run/php-fpm.sock;
>             fastcgi_index  index.php;
>             fastcgi_param  SCRIPT_FILENAME  /var/www/site$fastcgi_script_name;
> #               fastcgi_param  SCRIPT_FILENAME  /var/www/site/u.php;
>             include        fastcgi_params;
>         }
> ...
> Обратите внимание, пожалуйста, на строчку реврайта... т.е. при запросе файла .png должно реврайтить на u.php?anime=блаблабла ... u.php это файл php который обрабатывается интерпретатором. И обратите внимание на строчку 
>  fastcgi_param  SCRIPT_FILENAME  /var/www/site$fastcgi_script_name;
> Т.е. проблема состоит в том, что в переменную $fastcgi_script_name пишется значение уже под реврайтом, в данном случае это блабла.png, и собственно интерпретатор не обработает этот файл, т.к. его не существует(т.к. он реврайтился)... вот он и выдает 
> "No input file specified". Т.е. если я вместо  $fastcgi_script_name впишу /u.php все будет работать, но там вить и другие php файлы есть, которые необходимо обработать...

"No input file specified" не поэтому, а потому что

-             rewrite ^/(.*)\.png$ u.php?anime=$1 last;
+             rewrite ^/(.*)\.png$ /u.php?anime=$1 last;

> Что можно предпринят в этом случае?
> Заранее спасибо огромное за подсказки! Уже второй день головой бьюсь
> ((


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





More information about the nginx-ru mailing list