nginx->fast-cgi->php->bitrix -- как вернуть 404 из php , с ЧПУ тоже на 404

Roman raduga на lan.com.ua
Вс Фев 13 00:26:08 MSK 2011


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

nginx/0.8.54
php 5.3.5 FPM/FastCGI

Друзья, никак немогу понять как передавать из скрипта php статус 404,
при ЧПУ сделаном тоже на 404.




Сайт работает на Битрикс.

ЧПУ сделано через /404.php

URL бывают
- прямой вызов скрипта php              (/path/script.php)
- c ЧПУ, редирект на реальный скрипт
- если заканчивается на /path/          - вызов /path/index.php

с приведенным конфигом все работает нормально,
кроме ситуации, когда URL с ЧПУ указывает на
несуществующий путь, о чем известно только со стороны php

например:
url  /news/102
рерайтится в /news.php?id=102

и эта статья удалена. Без fast-cgi все работало - правильно.
открывался /404.php и возвращался HTTP request status: 404
а сейчас - открывался /404.php  но статус - всегда 200


Да, в php:
cgi.rfc2616_headers = 1;
cgi.nph = 0;



конфиг:

        location / {


                index   index.php;

                error_page      404 = @bitrix;
                error_page      502 /502.htm;



                fastcgi_pass    unix:/tmp/php-fpm.sock;
                fastcgi_index   index.php;
                fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
                fastcgi_intercept_errors on;
                #recursive_error_pages          on;
                #fastcgi_pass_header    Status;
                break;

        }



        location @bitrix {

                fastcgi_pass   unix:/tmp/php-fpm.sock;

                fastcgi_index  index.php;

                fastcgi_param  SCRIPT_FILENAME $document_root/404.php;

                include fastcgi_params;

                fastcgi_intercept_errors off;

                fastcgi_pass_header     Status;
                #recursive_error_pages  on;

                break;

        }






-- 
С уважением,
 Roman                          mailto:raduga at lan.com.ua





Подробная информация о списке рассылки nginx-ru