Sim - você pode usar expressões regulares com 'captures' em location
e referenciá-las em location
block, assim:
location ~ /folder1/folder2/(.*)/ {
if ( !-e /tmp/access_$1_$cookie_PHPSESSID.tmp ) { ... }
}
Gostaria de colocar uma parte de um URI no nginx em uma variável. Atualmente tenho essa regra.
if ( !-e /tmp/access_22092012_$cookie_PHPSESSID.tmp ) {
rewrite /folder1/folder2/(.*) /folder1/folder1.php?file=$1 last;
}
As solicitações são como
Onde 22092012 pode ter também outros números.
Gostaria de extrair a parte 22092012
da URL colocando-a em uma variável, o que acontece no arquivo existe condição acima:
if ( !-e /tmp/access_$urlpart_$cookie_PHPSESSID.tmp ) {
rewrite /folder1/folder2/(.*) /folder1/folder1.php?file=$1 last;
}
Por que preciso disso: faço uma proteção de login para proteger arquivos com um login de sessão. Meu aplicativo grava os arquivos tmp, portanto, se em uma pasta são 100 arquivos, o script não precisa verificar para cada arquivo se tem permissão para isso e não precisa executar para cada arquivo um trabalhador PHP.
Isso é possível?