Arquivo específico do bloco de localização Nginx

1

Eu tenho os seguintes blocos de localização do nginx:

location /publish/domain.io.php {
  allow 127.0.0.1;
  deny all;
}

location ~\.php {
  try_files $uri =404;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  fastcgi_intercept_errors on;
  fastcgi_pass 127.0.0.1:9000;
  include /etc/nginx/fastcgi_params;
}

O problema é que o bloco de localização /publish/domain.io.php parece não estar sendo executado. Eu posso chamar o script php domain.io.php de qualquer host.

Idéias? Muito obrigado.

    
por Justin 16.07.2012 / 05:15

1 resposta

4

Use o prefixo = location para determinar a correspondência exata. Como está escrito em documentação do nginx : "Se uma correspondência exata for encontrada, a pesquisa será encerrada. "

Assim, sua localização deve ser semelhante a:

location = /publish/domain.io.php {
  allow 127.0.0.1;
  deny all;              # Gives 403
}

ou

location = /publish/domain.io.php {
  internal;              # Gives 404
}
    
por 16.07.2012 / 05:41

Tags