Я использую перезапись вот так
if (!-e $request_filename) {
rewrite ^/(en|ga)?/?(.*)$ /index2.php?cultureKey=$1&mq=$2 last;
}
но после того, как мне нужно, чтобы некоторые переписанные URL-адреса были кэшированы в течение 30 секунд. Оставшиеся запросы fast_cgi должны быть 5 минут.
fastcgi_cache_valid 200 302 5m;
expires 5m;
if ($args ~* (dynamic\.html)){
expires 30s;
}
Я попытался переместить их, но либо dynamic.html, либо другие файлы по-прежнему кешируются через 30 секунд, либо они оба истекают через 30 секунд.
Как сделать, чтобы dynamic.html (переписанный) кешировался на 30 секунд, а оставшиеся файлы - на 5 минут?
Спасибо
$args
это переменная, содержащая параметры запроса на GET
Вы уверены, что не после $request_uri
или $uri
? Возможно, лучше использовать блок местоположения:
location ~* dynamic.html {
expires 30s
}
но это зависит от остальной части вашей конфигурации, поэтому YMMV.
Я думаю, что "если" вызывает проблемы. Вы должны прочитать это http://wiki.nginx.org/IfIsEvil