faz com que vários blocos de localização correspondentes sejam manipulados

1

No meu arquivo nginx conf.d eu tenho o seguinte:

  location ~ \.php$ {
    try_files $uri = 404;
    fastcgi_pass unix:/tmp/php5-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }

  location ^~ /dev/ {
    fastcgi_param PHP_VALUE display_errors=On;
  }

Meu objetivo era fazer com que o * .php fosse analisado pelo PHP em qualquer diretório, incluindo o diretório / dev / e dentro do diretório / dev /, display_errors seria ativado. Mas parece que os locais não estão sendo ANDed juntos, mas sim ORd. Então, se ele corresponder a * .php, ele será analisado como um arquivo PHP, a menos que esteja no diretório / dev /.

Eu tenho que ser redundante e ter o código de configuração do PHP duplicado duas vezes ou existe uma maneira de evitar essa redundância?

Obrigado!

    
por neubert 31.03.2013 / 18:31

1 resposta

0

Sim, você precisa ser redundante. Exceto em circunstâncias muito limitadas, location blocos são analisados apenas uma vez e a correspondência mais próxima ganha.

Embora seja possível reduzir a dor removendo os parâmetros de configuração comuns em um arquivo separado e, em seguida, usando include para incluí-lo nos dois locais.

    
por 31.03.2013 / 19:34

Tags