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