Fwd: nginx-fastcgi-rewrite

Валентин Бартенев vbart at nginx.com
Thu Nov 15 23:49:54 UTC 2012


On Friday 16 November 2012 02:51:44 Юрий Гончаров wrote:
> Если нужно debuglog я могу его выслать, могу дать детальнее конфиг или
> дебаг лог, перефразировать вопрос и т д.. Скажите чего именно не хватает
> чтобы решить задачу именно так как я её озвучил.
> Спасибо заранее..
> 

Для этого не нужно debug log, все работает именно так, как вы настроили.
Я вам указываю на проблему и даю ссылку, где прочитать если что-то не понятно.
Свое первое письмо вы начали с фразы "Помогите разобраться".

Так, как вы решаете задачу - решить её невозможно. Вы хотите чтобы файл, который
обрабатывается php-fpm, и URI, переданный в параметрах - отличались, но при этом
для того и другого пытаетесь использовать этот самый URI одновременно. Не может
одна и та же сущность иметь одновременно два разных значения. Сколько его раз
туда-сюда не переписывай, с помощью try_files или с помощью rewrite.

Нужно отделить скрипт от пути, так отделите:

    root /www/projects/domain.com/public_ru;

    location /msg/ {
        rewrite ^/msg/(.*)/$ /previewmsg?varMd5=$1 break;
        
        fastcgi_pass unix:/tmp/php.socket;

        include fastcgi_params; # оригинальный, который к nginx прилагался,
                                # без SCRIPT_FILENAME

        fastcgi_param SCRIPT_FILENAME
                      $document_root/public/accesspoint.php;

        # дабы не дублировать REQUEST_URI из fastcgi_params
        fastcgi_param PATH_INFO        $uri;
    }

а вообще так, если очень хочется:

    location ~ ^/msg/(.*)/$ {
        fastcgi_pass unix:/tmp/php.socket;

        fastcgi_param SCRIPT_FILENAME /path/to/accesspoint.php;
        fastcgi_param QUERY_STRING    varMd5=$1;
        fastcgi_param REQUEST_URI     /previewmsg;

        # Остальное при необходимости. Понятие не имею,
        # что ещё php-fpm обязательно требуется для работы,
        # и что конкретно требуется вам в вашем скрипте.
    }

ну и ещё есть сотня вариантов это получить, той или иной степени корявости.

--
Валентин Бартенев
http://nginx.com/support.html
http://nginx.org/en/donation.html


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