А магия таки есть<div><br></div><div><div><br></div><div>        location ~ ^(/[^/]+) {</div><div>                try_files $uri $1/accesspoint.php /public/accesspoint.php =405;</div><div>                include fastcgi_params_ru;</div>
<div>                set $myuri $uri;</div><div>                fastcgi_param REQUEST_URI $myuri;</div><div>                fastcgi_connect_timeout 3600;</div><div>                fastcgi_send_timeout 3600;</div><div>                fastcgi_read_timeout 3600;</div>
<div>                fastcgi_pass unix:/tmp/php.socket;</div><div>                client_max_body_size 100m;</div><div>                root /www/</div><div>        }</div><div><br></div><div>При такой конфигурации set отрабатывает до try_files и сохраняется промежуточное значение как надо.</div>
<div>Если этот же location переписать так что делать не set а сразу fastcgi_param REQUEST_URI $uri - тогда будет /public/accesspoint.php</div><div>Получается param сетится уже после try_files а set в location ДО...Магия? :)</div>
<br><div class="gmail_quote">16 ноября 2012 г., 1:49 пользователь Валентин Бартенев <span dir="ltr"><<a href="mailto:vbart@nginx.com" target="_blank">vbart@nginx.com</a>></span> написал:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Friday 16 November 2012 02:51:44 Юрий Гончаров wrote:<br>
> Если нужно debuglog я могу его выслать, могу дать детальнее конфиг или<br>
> дебаг лог, перефразировать вопрос и т д.. Скажите чего именно не хватает<br>
> чтобы решить задачу именно так как я её озвучил.<br>
> Спасибо заранее..<br>
><br>
<br>
Для этого не нужно debug log, все работает именно так, как вы настроили.<br>
Я вам указываю на проблему и даю ссылку, где прочитать если что-то не понятно.<br>
Свое первое письмо вы начали с фразы "Помогите разобраться".<br>
<br>
Так, как вы решаете задачу - решить её невозможно. Вы хотите чтобы файл, который<br>
обрабатывается php-fpm, и URI, переданный в параметрах - отличались, но при этом<br>
для того и другого пытаетесь использовать этот самый URI одновременно. Не может<br>
одна и та же сущность иметь одновременно два разных значения. Сколько его раз<br>
туда-сюда не переписывай, с помощью try_files или с помощью rewrite.<br>
<br>
Нужно отделить скрипт от пути, так отделите:<br>
<br>
    root /www/projects/<a href="http://domain.com/public_ru" target="_blank">domain.com/public_ru</a>;<br>
<br>
    location /msg/ {<br>
        rewrite ^/msg/(.*)/$ /previewmsg?varMd5=$1 break;<br>
<br>
        fastcgi_pass unix:/tmp/php.socket;<br>
<br>
        include fastcgi_params; # оригинальный, который к nginx прилагался,<br>
                                # без SCRIPT_FILENAME<br>
<br>
        fastcgi_param SCRIPT_FILENAME<br>
                      $document_root/public/accesspoint.php;<br>
<br>
        # дабы не дублировать REQUEST_URI из fastcgi_params<br>
        fastcgi_param PATH_INFO        $uri;<br>
    }<br>
<br>
а вообще так, если очень хочется:<br>
<br>
    location ~ ^/msg/(.*)/$ {<br>
        fastcgi_pass unix:/tmp/php.socket;<br>
<br>
        fastcgi_param SCRIPT_FILENAME /path/to/accesspoint.php;<br>
        fastcgi_param QUERY_STRING    varMd5=$1;<br>
        fastcgi_param REQUEST_URI     /previewmsg;<br>
<br>
        # Остальное при необходимости. Понятие не имею,<br>
        # что ещё php-fpm обязательно требуется для работы,<br>
        # и что конкретно требуется вам в вашем скрипте.<br>
    }<br>
<br>
ну и ещё есть сотня вариантов это получить, той или иной степени корявости.<br>
<br>
--<br>
Валентин Бартенев<br>
<a href="http://nginx.com/support.html" target="_blank">http://nginx.com/support.html</a><br>
<a href="http://nginx.org/en/donation.html" target="_blank">http://nginx.org/en/donation.html</a><br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></blockquote></div><br></div>