передача QUERY_STRING при обработке error_page 404
Igor Sysoev
is at rambler-co.ru
Wed Aug 24 21:37:55 MSD 2005
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
More information about the nginx-ru
mailing list