rewrite && nginx == T_T

Alexey Kovyrin alexey at kovyrin.net
Wed Feb 25 10:32:51 MSK 2009


location = /u.php - оно?

2009/2/24 Sandel <sandel at ukr.net>:
> Здравствуйте!
> Столкнулся с проблемой нджинкса... Вот недавно решил перейти с апача, на него...
> Юзаю 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 файлы есть, которые необходимо обработать...
> Что можно предпринят в этом случае?
> Заранее спасибо огромное за подсказки! Уже второй день головой бьюсь
> ((
>
>
>



-- 
Alexey Kovyrin
http://kovyrin.info/


More information about the nginx-ru mailing list