ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re[3]: REwrite i QueryString



On Tue, 17 May 2005, Aleksej Novikov wrote:

Tuesday, May 17, 2005, 3:47:42 PM, you wrote:
html - это дефолтный root, если root не описан, то равен <prefix>/html
Нужно для этого location описать root:
     location  ~*  \.html$ {
         root   /path/to/root;
         rewrite .* /index.php?r=$request_uri break;
     }
И ещё я убрал точку перед ./index.php.
Отлаживать rewrite можно по логу, уровень notice и директива
rewrite_log [on|off];
Ну, что могу сказать, определённые сдвиги есть. Вышеуказанная
конструкция возвращает мне только index.php без никаких параметров,
при это возвращает так, что броузер начинает её скачивать а внутри
оказывается исходник на PHP. То есть как я понимаю, не передаётся на
CGI. Вот мой колнфиг.

   location  ~* \.(html)$ {
          rewrite_log on;
          root   /data/www/htdocs/www.*******.com;
          rewrite .* /index.php?r=$request_uri break;
       }

   location ~* ^.+\.(php) {
           fastcgi_pass  127.0.0.1:9000;
           fastcgi_root   /data/www/htdocs/www.*******.com/;
           fastcgi_index  index.php;
           fastcgi_temp_path  /tmp ;
           fastcgi_buffers               4 32k;
           fastcgi_busy_buffers_size     32k;
           fastcgi_temp_file_write_size  32k;
       }

Потому что в рамках "location  ~* \.(html)$" запрос обрабатывается
как статический файл. Нужно или добавить fastcgi_... директивы
в "location  ~* \.(html)$", или убрать break из rewrite'а. Во втором
случае после rewrite'а будет снова определяться location и запрос
попадёт в "location ~* ^.+\.(php)".

Кстати, скобки вокруг (html) и (php) не нужны.

И ещё, начиная с 0.1.29 fastcgi_root нет, и нужно указывать все нужные
FastCGI параметры.


Игорь Сысоев
http://sysoev.ru




 




Copyright © Lexa Software, 1996-2009.