Minha reescrita do nginx está baixando o arquivo php

12

Eu tenho a seguinte regra de reescrita que estou tentando:

            location / {
                    index index.php index.html;
                    rewrite  ^/test$  /test.php  break;
            }

E eu também tenho:

            location ~ \.php$ {
                    fastcgi_pass    127.0.0.1:9000;
                    include         fastcgi_params;
                    fastcgi_param SCRIPT_FILENAME /home/sites/default$fastcgi_script_name;
                    fastcgi_index   index.php;
            }

Arquivos php normais funcionam bem, mas parece que meu redirecionamento está apenas baixando o arquivo php para o qual estou redirecionando, em vez de analisá-lo.

o que estou perdendo? Eu consegui carregar o arquivo, em vez de baixar, colocando o material fastcgi no primeiro bloco de localização, mas ele ainda não foi analisado como php.

willdanceforfun
fonte

Respostas:

24

Mude breakpara last.

Como o novo URL precisará ser processado por um diferente location, é necessário que o nginx reinicie o processamento do novo URL reescrito, o que é feito apenas quando você usa lasta rewriteregra.

Consulte os documentos para obter uma explicação mais completa.

Michael Hampton
fonte
@TamasKalman Eh? Você não se parece com o OP. Se você está tendo um problema, pode fazer uma nova pergunta.
Michael Hampton