Модификация fastcgi_param REQUEST_URI и множественные rewrite

Bogdan bogdar at gmail.com
Thu Mar 20 16:42:59 UTC 2014


Добрый день.

Хочу иметь возможно многократно делать rewrite и получать в конце в
параметр REQUEST_URI "последний" результат работы rewrite

Т.е. что-то такое:

URL: http://site.com/page-10

rewrite ^/page-(.*) /main/handler?page=$1;
rewrite ^/main/.* /router;

location / {
                index index.php;
                try_files $uri $uri/ /index.php?$args;
}

        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

                # With php5-fpm:
                fastcgi_pass backend;
                fastcgi_index index.php;
                fastcgi_connect_timeout 1;
                fastcgi_send_timeout 1;
                include fastcgi_params;
 }

В результате я хотел бы получить при обращении к URL http://site.com/page-10
в параметре REQUEST_URI передаваемому fastcgi-серверу значние вида:
/router?page=10
Сейчас в REQUEST_URI передаётся переменная $request_uri со значением
"/page-10", а переменная $uri содержит "/index.php"

Подскажите пожалуйста, как это можно сделать, особенно хотелось бы обойтись
без if .. set
В крайнем случае устроил бы и всего один rewrite, но нужно так или иначе
предавать в fastcgi модифицированный вариант URI.

Спасибо.

-- 
WBR,  Bogdan B. Rudas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20140320/ad6046f8/attachment-0001.html>


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