Parece-me que você não está capturando os três últimos caracteres do nome do arquivo (por exemplo, pdf
), o que significa que eles estão ausentes do URI reconfigurado.
Você deve tentar mover o )
, para que pdf
seja capturado como parte de $1
:
rewrite ^/(.*pdf)/(.*)/(.*)$ /$1?md5=$2&expires=$3 break;
EDIT: Em resposta ao seu comentário, você pode adicionar um novo bloco de localização que corresponda aos URIs que você deseja rejeitar, por exemplo:
location ~* \.pdf$ {
return 403;
}
O bloco de localização de expressão regular acima corresponde a qualquer URI que termine com .pdf
(com ou sem uma string de consulta). Consulte este documento para obter detalhes.