rewrite && nginx == T_T

Sandel sandel at ukr.net
Wed Feb 25 02:13:20 MSK 2009


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






More information about the nginx-ru mailing list