Re: Модификация fastcgi_param REQUEST_URI и множественные rewrite
Maxim Dounin
mdounin at mdounin.ru
Thu Mar 20 16:55:58 UTC 2014
Hello!
On Thu, Mar 20, 2014 at 07:42:59PM +0300, Bogdan wrote:
> Добрый день.
>
> Хочу иметь возможно многократно делать 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.
Напишите отдельный location и передавайте туда то значение,
которое вам больше нравится.
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru