Пытаюсь организовать кэширование страниц с uri начинающегося со следующих символов:
location /index.php?main_page=nocachedajax&q=savelocation {
                proxy_cache cache;
                proxy_cache_valid 200 302 304 1800m;
                proxy_cache_valid any 1s;
                proxy_cache_key "$request_method|$http_if_modified_since|$http_if_none_match|$host|savelocation";
                proxy_hide_header "Set-Cookie";
                proxy_ignore_headers "Cache-Control" "Expires";
                add_header Cache-Control private;
                expires 1800m;
                include         /etc/nginx/proxy.conf;
                if ($http_user_agent !~* (spider|bot|crawler)) {
                    # для нероботов не кэшируем и шлем далее на бэкенд
                    # роботоопределение грубое, но для нашего случая достаточное
                    return 412;
                }
                error_page 412 = @fallback;
        }
или как вариант задания location
location ^~ /index.php?main_page=nocachedajax&q=savelocation {
...
}
Но в документации наткнулся на следующее:
Note that locations of all types test only a URI part of request line
without arguments.
This is done because arguments in the query string may be given in
several ways
То есть все, что после "?", будет проигнорировано и совпадения с указанной строкой не будет никогда.
Кто-то может поделиться идеей как обойти это ограничение и как правильно указать правило для location в этом случае?
Спасибо.