Você pode usar esse bloco location
para suas imagens:
location ~* \.(jpg|jpeg|gif|png|bmp)$ {
try_files $uri $uri/ /index.php$is_args$args;
add_header Cache-Control public;
add_header Cache-Control must-revalidate;
expires 7d;
}
Pode ser necessário modificar /index.php?$is_args$args
parte na linha try_files
para que você obtenha os parâmetros corretos para o seu script, já que sua pergunta inicial não mostrou claramente quais são os parâmetros desejados.
Em seguida, para o restante das opções de cache, use este location
block:
location ~* \.(ico|pdf|flv|swf|exe|html|htm|txt|css|js)$ {
add_header Cache-Control public;
add_header Cache-Control must-revalidate;
expires 7d;
}
Também adicionei o $
às sequências de correspondência regex, para que apenas as solicitações que terminam com a extensão sejam processadas por esse bloco. Por exemplo, com sua configuração inicial, um URL https://example.com/path/image.jpg75783
seria processado pelo seu bloco location
, onde você especifica suas diretivas de cache.
Outra alternativa é definir seus cabeçalhos de cache de imagem em seu script PHP.