The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Nginx: rewrite не может перезаписать request_uri"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (nginx)
Изначальное сообщение [ Отслеживать ]

"Nginx: rewrite не может перезаписать request_uri"  +/
Сообщение от glagola email on 04-Ноя-12, 19:30 
Всем привет.
У меня на сервере крутится nginx + php-fpm. PHP-скрипты "привыкли работать" в корне сайта, но из-за сложившихся обстоятельств их пришлось перенести глубже, чтобы не трогать скрипты я решил сделать rewrite в конфиге nginx'a, выглядит кусок конфига следующим образом:

location /rest/ {
    root   /var/www/php;
    
    rewrite ^/rest/(.*)$ /$1 break;
    index  index.html;
    
    fastcgi_pass  unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root/index.php;
    include        fastcgi_params;
}

Однако, получается так, что $_SERVER['REQUEST_URI'], при обращении по адресу http://site.com/rest/process, равен '/rest/process' (т.е. почему-то rewrite не сработал), при этом $_SERVER['DOCUMENT_URI'] нормально "реврайтнулся" и, соответственно, равен '/process'.

Бьюсь с этим уже целый день, и буду рад любой помощи.


Спасибо.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Nginx: rewrite не может перезаписать request_uri"  +/
Сообщение от PavelR (ok) on 04-Ноя-12, 20:00 

> Бьюсь с этим уже целый день, и буду рад любой помощи.

Будете биться до конца жизни, пока не начнете читать документацию, хотя бы когда что-то не получается:

http://nginx.org/ru/docs/http/ngx_http_core_module.html#vari...

$request_uri - первоначальный URI запроса целиком (с аргументами)

$uri ($document_uri) -   текущий URI запроса в нормализованном виде

Значение $uri может изменяться в процессе обработки запроса, например, при внутренних перенаправлениях или при использовании индексных файлов.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Nginx: rewrite не может перезаписать request_uri"  +/
Сообщение от glagola email on 04-Ноя-12, 20:31 
>> Бьюсь с этим уже целый день, и буду рад любой помощи.
> Будете биться до конца жизни, пока не начнете читать документацию, хотя бы
> когда что-то не получается:
> http://nginx.org/ru/docs/http/ngx_http_core_module.html#vari...
> $request_uri - первоначальный URI запроса целиком (с аргументами)
> $uri ($document_uri) -   текущий URI запроса в нормализованном виде
>  Значение $uri может изменяться в процессе обработки запроса, например, при внутренних
> перенаправлениях или при использовании индексных файлов.

благодарю, что ткнули носом :) Решил проблему по другому:
    location /rest/ {
        root   /var/www/php;

        index  index.html;

        fastcgi_split_path_info ^(/rest/)(.*)$;
        fastcgi_pass  unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root/index.php;
        fastcgi_param PATH_INFO       $fastcgi_path_info;
        include        fastcgi_params;
    }

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру