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