ПРОЕКТЫ 


  АРХИВ 


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: передача QUERY_STRING при обработке error_page 404



On Wed, 24 Aug 2005, Andrei Nigmatulin wrote:

On Wednesday 24 August 2005 19:32, Igor Sysoev wrote:

Хочется обрабатывать 404 ошибки скриптом, но при этом в скрипт почему-то
не передается QUERY_STRING.

Как можно сделать чтобы передавалась ?

После error_page $query_string обнуляется. Можно так:

     server {
         set  $original_query_string  $query_string;

         ...

         location ^~ /404.phtml {
             ...
             fastcgi_param  QUERY_STRING   $original_query_string;
             ...

Так все равно не передается. nginx версии 0.1.42. Что я делаю
неправильно ? ;-)

Я ошибся: после внутреннего редиректа с помощью error_page опять
выполяняются все директивы ngx_http_rewrite_module на уровне сервера
и $original_query_string становится равной пустой $query_string.
Нужно вынести set из сервера во все location, где нужно сохранить
$query_string:

      server {

          location  / {
              set  $original_query_string  $query_string;
              ...
          }

          location = /404.phtml {
              ...

Кстати, "location ^~ /404.phtml" лучше заменить на "location = /404.phtml".


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




 




Copyright © Lexa Software, 1996-2009.